我有业务逻辑,可以坐在业务逻辑/服务层或添加到扩展域类(EF T4生成的POCO)的新成员,利用部分类功能。使用部分类的实体框架POCO中的业务逻辑?
所以我可以有:
一)bool OrderBusiness.OrderCanBeCancelledOnline(Order order)
.. 或(IOrder顺序)
或
B)bool order.CanBeCancelledOnline()
... 即它本身就是知道与否的顺序它可以被取消。
对我来说选项b)更多OO。然而,选项a)允许应用更复杂的逻辑,例如,使用其他域对象或服务。
目前我有两种混合,这看起来并不高雅。
任何有关这方面的指导将不胜感激!
谢谢Brian。为了澄清我给出的'CanBeCancelledOnline'的例子,可能需要启用/禁用表单上的'取消订单'按钮 - 所以在这种情况下,我确实需要“拉出属性并自己作出决定”(我会在许多情况下,争论并不违背OO范式)。 – 2010-10-03 11:35:40
......让我们说(仅举例而言),为了确定它是否可以取消,它需要了解一些关于客户合同的内容。再次两个选项。 a)OrderBusiness类使用来自订单和合同的信息(或逻辑)来确定订单是否可以被取消。或者 b)我执行order.CanBeCancelledOnline(合同合同),逻辑保留在Order类中。 我认为你会倾向于b)作为最好的方法? – 2010-10-03 11:46:30
如果订单与客户合同有关,那么它可能暗含了对该合同的引用。所以这是第三种选择(如果有效,我宁愿选择那个) – 2010-10-03 11:48:18