Предположим, что у меня есть
Class A {
Foo getFoo();
Bar getBar();
Baz getBaz();
}
И мне нужно определить функцию doStuff
, которая использует Foo
, Bar
, Baz
объекта один и делает некоторые вещи
Я боюсь между тем, какой метод реализации doStuff
лучше (предположим, было бы нежелательно размещать doStuff
внутри класса A
)
Метод A
void doStuff(Foo foo, Bar bar, Baz baz)
{
//some operation
}
или
Метод B
void doStuff(A a)
{
Foo foo = a.getFoo();
Bar bar = a.getBar();
Baz baz = a.getBaz();
//some operation
}
К моим ограниченным знаниям, (+ плюсы, минусы)
Метод A
+ Ясно, какие параметры doStuff()
работают на
-Почувствуйте длинные списки параметров и более подвержены ошибкам пользователя
Метод B
+ Простой, простой в использовании метод
+ Кажется более растяжимым (?)
-Создает ненужную зависимость от класса A
Может ли кто-нибудь поделиться дополнительной информацией о плюсах и минусах этих двух методов?