我应该围绕这个实体构建一个包装器吗?

时间:2009-12-17 20:57:45

标签: c# oop

我有以下布局:

实体:

Order
OrderItem

DAO课程:

OrderDAO
OrderItemDAO

所以我有POCO课程和DAO课程。

现在我想将上述实体封装到另一个实体中,所以我可以使用以下方法:

x.AddItem(OrderItem item)
x.CalculateTotal();
x.CalculateShipping();
x.Charge();

这种类型的实体会被称为什么?厂?或者只是一个简单的包装类?

3 个答案:

答案 0 :(得分:2)

通常,我将代码库划分为多个层:建模层,数据访问层,经理/业务逻辑层和UI

在这种情况下,我建议离开Order / OrderItem POCO并创建一个OrderManager类。它将是一个无状态单例,并具有AddItem(Order,OrderItem)等方法。在内部,它将处理更新模型,提交数据更改,任何事务性等的细节。

答案 1 :(得分:1)

它绝对不是工厂(可能是创建你的“联合”实体的对象)。可能是包装纸,是的。但是为什么不让Order实体直接通过在两者之间创建关系来管理其OrderItem

答案 2 :(得分:0)

听起来更像是Facade Pattern给我。隐藏执行这些不同过程的行为的实际执行情况。或者通俗地说,包装器是正确的。

见这里:http://en.wikipedia.org/wiki/Facade_pattern