私は、BusinessObjects (ロジックを含まず、プロパティのみを含む) を使用する C# Winforms アプリと、それらのエンティティを操作するクラス (「ヘルパー」) を含む BusinessLayer のサポートを担当しています。
質問: BusinessObject をヘルパー コンストラクターに渡してから、コンストラクター内で、ヘルパーのパブリックにアクセス可能なエンティティ変数をインスタンス化する必要がありますか、それとも、エンティティに基づいて動作するメソッドにエンティティを渡すだけですか?
シナリオ 1: コンストラクターへ
Car myCar = new Car();
CarHelper ch = new CarHelper(myCar);
ch.Wash(suds);
ch.Upgrade(upgradeKit);
ch.Save();
シナリオ 2: Entity に作用するメソッドへ
Car myCar = new Car();
CarHelper ch = new CarHelper();
ch.Wash(myCar, suds);
ch.Upgrade(myCar, upgradeKit);
ch.Save(myCar);
シナリオ 1 で私が抱えている 2 つの大きな問題: A) 次の開発者は、CarHelper クラスを掘り下げて、それを必要とするメソッド内で参照する public Car アクセサー プロパティがあることを認識する必要があります。これにより、各メソッドがその役割を実行する前に「null」の Car プロパティをチェックする必要があるという点で、ヘルパー クラスがさらに難読化されます... B) 操作の間に他のコードが多数存在する場合、どの ch.Wash( )は実際にやっています...それはCarオブジェクトにも作用しますか...?
みんなはどう思う???