我负责支持使用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对象作用...?
大家怎么想?