【发布时间】:2016-04-28 03:55:18
【问题描述】:
假设我有以下内容
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的不必要的依赖
任何人都可以分享关于这两种方法的优缺点的更多见解吗?
【问题讨论】:
-
话虽如此,方法B
标签: design-patterns parameters method-call parameter-object