【发布时间】:2011-08-31 18:37:56
【问题描述】:
我负责支持使用 BusinessObjects(不包含逻辑,仅包含属性)的 C# Winforms 应用程序和具有操作这些实体的类(“Helpers”)的 BusinessLayer。
问题: 如果您将 BusinessObject 传递给 Helpers 构造函数,然后在构造函数内部,实例化 Helper 的可公开访问的 Entity 变量 要么 您是否应该将实体传递给对其进行操作的方法?
场景一:构造函数
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 类,才能意识到它有一个公共 Car 访问器属性,它在需要它的方法中引用该属性。这进一步混淆了 Helper 类,因为每个方法在执行其职责之前都需要检查“null” Car 属性...... B)如果在操作之间存在大量其他代码,则可能会不清楚 ch.Wash() 实际在做什么......它甚至是否作用于 Car 对象......?
大家怎么看???
【问题讨论】:
标签: business-objects business-logic-layer