powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / вопрос стиля
9 сообщений из 34, страница 2 из 2
вопрос стиля
    #37600126
WebPrj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mesier,
imho он просто спросил про метод:
- изменение поля класса через входной параметр или без оного
...
Рейтинг: 0 / 0
вопрос стиля
    #37600133
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grokкак лучше

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
class C {
  private Object x;
  private void doSmthWithX() { 
     // some changes to x
  };
  public void doSmth() {
    doSmthWithX();
  }
}



или

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
class C {
  private Object x;
  private void doSmthWithX(Object  xx) { 
     // some changes to xx
  };
  public void doSmth() {
    doSmthWithX(x);
  }
}


Лучше всего так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
class MyObj {
 private int x;
 
 public bar(int y) {
   x = foo(x,y);
 } 

 private foo(int x,y) { ... }
}


Получаются функции без побочных явлений (в термине не уверен), со всеми их преимуществами. Понятно, что всегда надо в первую очередь думать. Иногда так делать неудобно.
...
Рейтинг: 0 / 0
вопрос стиля
    #37600138
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svenomMiha_S7что вы имеете в виду? Не могли бы уточнить? Введение статического метода приводит к:
1) Невозможности введения абстракции в виде интерфейса. Самый жизненный пример - невозможно обернуть этот метод в декларативные транзакции через AOP.
2) Невозможности нормально протестировать код, зависящий от статического метода.
Поэтому использование статических методов в бизнес-логике должно быть сведено к минимуму.
Согласен. Правда до этого не смотрел с этой точки зрения :)
...
Рейтинг: 0 / 0
вопрос стиля
    #37600141
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grokно в реальной жизни-то private методы пишутся для повторного использования внутри класса
В реальной жизни они пишутся не только для этого.
...
Рейтинг: 0 / 0
вопрос стиля
    #37600186
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему всё просто. Если метод кроме этого поля ни с чем работать не может. То работаем только с полем. Метод только приватный, либо protected.
Если метод кроме этого поля может использовать другие значения из других классов, то, конечно же параметр.
Это не стиль. Это простая логика.
...
Рейтинг: 0 / 0
вопрос стиля
    #37600198
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczПо-моему всё просто. Если метод кроме этого поля ни с чем работать не может.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
class MyObj {
  private List<Int> data;
  private double mean() {
    double mean; 
    for (int x : data) {..}
    return mean;
  }; 
}


Если речь идет об этом, то несогласен. Такой код, которые неявно работает с полями (и тем более их изменяет)) сложно читать и сложнее рефакторить, чем тот, который относится к полям как к внешним параметрам.
Когда читаешь, совершенно не ясна логика работы. Что-то где-то меняется, а что - непонятно.
...
Рейтинг: 0 / 0
вопрос стиля
    #37600201
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvЕсли речь идет об этом, то несогласен. Такой код, которые неявно работает с полями (и тем более их изменяет)) сложно читать и сложнее рефакторить, чем тот, который относится к полям как к внешним параметрам.
Когда читаешь, совершенно не ясна логика работы. Что-то где-то меняется, а что - непонятно.
Ну, при прочих равных, метод с параметрами лучше, конечно. Но не будете же вы все поля класса передавать в метод. Например initGui() :)
...
Рейтинг: 0 / 0
вопрос стиля
    #37600233
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczНу, при прочих равных, метод с параметрами лучше, конечно. Но не будете же вы все поля класса передавать в метод. Например initGui() :)
Не буду :)
...
Рейтинг: 0 / 0
вопрос стиля
    #37600473
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО - если задаетесь вопросом как бы лучше сделать - делайте хоть как, ибо не важно раз не можете определить какой вариант лучше. Потом всплывет - отрефакторите ;)
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / вопрос стиля
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]