SO的好人,
今天我对我的业务层设计有一些严重的担忧。 它基于实体POCO对象和 我想为这些实体添加逻辑BUT,有两种类型的逻辑:
我的问题很简单:
我应该如何分开这两种?
首先,我考虑将这两个作为方法添加到实体中。并使用部分类来拆分它们。
其次,我认为我不希望有很多方法的超重对象。 所以也许为什么静态类或单例使用方法执行LinqToEntities的东西,并将纯C#留在实体方法中。 然后我会有几个按照fonctionnality分组的类提供逻辑,实体作为参数传递给类方法。
这真让我困扰,因为第二个解决方案似乎更清晰,但看起来它打破了面向对象的范式。另一方面,第一个似乎是反模式。
你怎么看?你有解决这个悖论的明智解决方案吗?精神分裂症编辑:实际上我称之为持久性逻辑应该转到BLL中的DAL和纯c#逻辑。 POCO实体由DAL生成。然后,我可以在BLL中扩展这些实体以添加方法。在我的DAL中,我应该构建第二个解决方案中公开的逻辑。
答案 0 :(得分:3)
描述如何保存/加载实体的逻辑不属于实体本身;它更可能是持久性服务,数据访问对象等的角色。
我会让对象中的对象特定逻辑 - 我们在这里谈论对象行为,然后创建一个处理此对象类型的持久性问题的服务。