次のものがあるとします
Class A {
Foo getFoo();
Bar getBar();
Baz getBaz();
}
そして、 1 つのオブジェクトの、、をdoStuff
使用して何らかの処理を行う関数を定義する必要があります。Foo
Bar
Baz
どちらの実装方法が優れているかで苦労しています( class 内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
これら 2 つの方法の長所と短所について、追加の洞察を共有できる人はいますか?