假设我有以下内容
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
的不必要依赖关系
是否有人能分享这两种方法的其他优缺点?