私はここで、より良い(設計)アプローチが何であるかを検証したい状況があります。
'XObject'インスタンスのコレクションを含む/インスタンス化するクラス'XController'があるとします。そして、XControllerのインスタンス化を担当するクライアントがあります。
ここで、インスタンス化されたXObjectで実行したいことがある場合は、次のうちどれをお勧めしますか。
アプローチ1:
XController x = new XController(); // do something in the constructor to create XObjects with ids, x1, x2, so on...
x.doStuff(x1); // which does some stuff with the XObject with id 'x1'
アプローチ2:
XController x = new XController(); // do something in the constructor to create XObjects with ids, x1, x2, so on...
XObject xObj1 = x.getXObject(x1);
xObj1.doStuff(); // which does some stuff with(in) itself
ノート:
- コントローラは、doStuff()の前後には実際には何もしません。
- doStuff()の実装は通常、そのオブジェクトの状態のみを更新します。
なぜ一方が他方よりも優れているのかについての言及は高く評価されています。