Перегрузка: метод с большим количеством параметров, вызывающий метод с меньшим количеством параметров - PullRequest
0 голосов
/ 12 июня 2011

У меня спор с моим коллегой. При перегрузке двух методов считается ли плохой метод, если метод с большим количеством параметров вызывает метод с меньшим количеством параметров?

Например:

method (P p1, P p2, P p3) {
       <do something with p1 and p2 => newP>;
       method (newP, p3);
}
method (P p1, P p2) {
       ....
}

Ответы [ 4 ]

1 голос
/ 12 июня 2011

Такая перегрузочная цепочка является обычной практикой (в частности, для конструкторов) - я бы не назвал это плохим, хотя его можно злоупотреблять, как и большинством языковых функций.это хорошая практика.В большинстве случаев я нахожу, что это также более читабельно.

Я бы сказал, что использование этой техники - это вопрос личного мнения и стиля, а не абсолютная хорошая или плохая практика.

0 голосов
/ 12 июня 2011

Я думаю, что это хорошая практика, потому что она скрывает детали. Хотя пример, который вы показываете, кажется, идет другим путем.

Я бы ожидал, что тот, у кого меньшие параметры, вызовет тот, у которого больше + значений по умолчанию.Вы вызываете тот, у кого меньше деталей, а тот, у которого больше деталей.Каким-то образом это пахнет подозрительно, но, возможно, это только потому, что я не знаком с этим подходом,

0 голосов
/ 12 июня 2011

вместо этой практики мы можем использовать метод с несколькими параметрами в некоторых случаях, например printf в cJava также поддерживает сейчас.

0 голосов
/ 12 июня 2011

Это общая парадигма, используемая в вызовах конструктора, то есть та, у которой больше параметров, вызывает метод с меньшими параметрами, а затем продолжает свою инициализацию с остальными параметрами. Я не считаю это плохой практикой в ​​контексте конструирования объектов, но я не уверен, имеет ли это смысл в других ситуациях.

...