我負責支持使用BusinessObjects(不包含邏輯,僅屬性)的C#Winforms應用程序和具有操作這些實體的類('Helpers')的BusinessLayer。C#:將BusinessObject傳遞給'BusinessLayer'構造函數或其方法?
問題: 如果您在BusinessObject的傳遞給助手構造函數,然後在構造函數中,初始化助手的公開訪問的實體變量 OR 如果你只是傳遞實體到它行動的方法呢?
方案1:若要將構造
Car myCar = new Car();
CarHelper ch = new CarHelper(myCar);
ch.Wash(suds);
ch.Upgrade(upgradeKit);
ch.Save();
場景2:要的是對實體
Car myCar = new Car();
CarHelper ch = new CarHelper();
ch.Wash(myCar, suds);
ch.Upgrade(myCar, upgradeKit);
ch.Save(myCar);
兩個主要問題,我有方案1行動的方法: A)的下一個開發人員必須挖掘CarHelper類來認識到它具有公共汽車訪問器屬性,並在需要它的方法中引用它。這進一步混淆了Helper類,因爲每個方法在執行其職責之前需要檢查'null'Car屬性... B)如果在操作之間存在一堆其他代碼,可能會變得不清楚ch.Wash ()實際上在做......它甚至對Car對象作用...?
大家怎麼想?