使用 VO (POCO) 是一种糟糕的设计模式吗?有人说一个对象的所有领域逻辑都需要集中在该对象中。
例如:ProductVO:ID、名称、描述
ProductBO:SearchById(int id)、Insert(ProductVO newProduct)、Update(ProductVO UpdatedProduct、SearchByKeyword(string word)……
所有域逻辑都应该位于域层、域对象中……但是有一个强有力的论点是,技术问题(例如如何将对象保存到数据库或记录对象活动)不是域行为,它们是基础设施或应用程序问题,不应该在域对象中......
检查域驱动设计,在这种方法中,建议您将持久性逻辑的域相关方面(例如持久/获取对象)分离到称为存储库的单独类型(也在域层中)...但即使在这里,如何与数据库或其他持久存储技术对话的技术方面进一步分为基础设施服务。
看待这个问题的一种方法是服务应该分为三组,
-
基础设施服务。那些涉及一般技术方面的内容
(如通用数据库访问、缓存、日志记录、配置、消息传递等)
-
应用服务。涉及与业务领域无关的技术或应用程序设计方面(UI 中的 MVC 模式、屏幕导航、领域实体初始化方法等)。
-
域服务。与业务模式明确相关的服务。 (例如,为特定航班的航空公司座位创建预订,包含特定的餐食请求和座位分配,以及向指定的信用卡进行适当的交易借记...)
最后一种类型的“服务”应该在域层中,前两种,-不是......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)