说来惭愧, 某日项目组成员交上来领域模型类图,将对象的属性和方法分类,基本上统统使用了DomainObject-DomainObjectManager的方式,前者之后属性以及对应的getter-setter方法,后者包含具体的业务操作.在我询问为什么要这么做的时候,对方反问为什么不能呢,我说这样不符合OO,OO的对象是具有属性已经在此属性上具有操作能力的一种东西,他说分开来一部分用作PO对应数据库表,动作部分用来做基本业务处理难道不好吗? 我一时语塞...只能饮用Robin的一段:
引用
首先要区别持久对象和POJO。
持久对象实际上必须对应数据库中的entity,所以和POJO有所区别。比如说POJO是由new创建,由GC回收。但是持久对象是 insert数据库创建,由数据库delete删除的。基本上持久对象生命周期和数据库密切相关。另外持久对象往往只能存在一个数据库 Connection之中,Connnection关闭以后,持久对象就不存在了,而POJO只要不被GC回收,总是存在的。
由于存在诸多差别,因此持久对象PO(Persistent Object)在代码上肯定和POJO不同,起码PO相对于POJO会增加一些用来管理数据库entity状态的属性和方法。而ORM追求的目标就是要 PO在使用上尽量和POJO一致,对于程序员来说,他们可以把PO当做POJO来用,而感觉不到PO的存在。
难道这就是传说中的贫血Domian Model,而所谓的Service其实就是这些个Manager的集合?

- 大小: 32.9 KB
分享到:
相关推荐
【QTP脚本数据分离管理】是自动化测试领域中一种高效的方法,用于将测试脚本与测试数据分离开来,以提高脚本的可维护性和复用性。QuickTest Professional(QTP)是HP(现称Micro Focus)推出的一款功能强大的自动化...
事件的发布通常在领域对象的方法中完成,当某个业务条件满足时,领域对象会触发相应的事件。发布事件通常通过事件总线(Event Bus)来完成,事件总线负责将事件分发到订阅者。 **事件处理** 领域事件的处理分为两种...
与传统方法不同,面向对象方法不将数据和处理分离,而是将它们视为一个整体,使对象成为处理的主体,能够主动执行操作,而不是被动地接受外界指令。 面向对象方法的四个要点是: 1. **对象的定义**:世界由对象...
面向对象编程是一种重要的软件开发方法,它以对象作为基本的构造单元,强调数据与操作的封装,通过继承、多态等特性实现代码的重用和灵活性。以下是对面向对象编程相关知识点的详细解释: 1. **对象的抽象**:对象...
这种方法使得业务逻辑与数据访问分离,保持了领域模型的纯净。 总结来说,领域服务是DDD中处理跨实体操作的重要工具,它提供了一种方式来封装那些不能简单归于单个实体或值对象的业务行为。通过合理地划分聚合并...
26. 面向对象分析与设计与面向功能分析的区别在于,前者基于对象和类的抽象,后者基于功能分解和数据流。 27. 用例“创建新订单”、“更新订单”与“核查客户帐号”的关系可能是包含(include),表示核查客户帐号...
除了基础概念和内置对象,JSP的动作也是面试中的高频考点。JSP动作包括标准动作和自定义动作,标准动作如jsp:forward、jsp:param等用于页面请求的转发和参数传递;自定义动作则需要开发者根据实际需要编写。此外,...
MvcContrib 是一个针对 ASP.NET MVC 框架的开源扩展库,它提供了许多额外的功能和工具,以增强和简化...此外,这也有助于开发者掌握 ASP.NET MVC 框架的高级特性和最佳实践,进一步提升其在 .NET 开发领域的专业技能。
面向对象的MVC模式是一种软件设计模式,全称为Model-View-Controller,广泛应用于Web开发领域,特别是Java、.NET等平台。这个模式的主要目的是分离应用程序的业务逻辑、用户界面和数据模型,使得代码更易于维护和...
在编程领域,开发者可以通过SDK来访问这些数据,实现各种有趣的应用,如虚拟现实、体感游戏、人机交互等。本文将详细介绍如何使用Kinect V2获取深度图像和彩色图像。 首先,我们需要了解Kinect V2的硬件结构。它...
在IT行业中,尤其是在Web开发领域,表单对象(Form Objects)是一种常见的设计模式,它将表单处理逻辑从模型(Model)中分离出来,以提高代码的可读性、可维护性和可测试性。"form_object:与模型分离的表单对象"这...
QTP支持数据驱动测试,可以从外部数据源(如Excel、Access)导入数据,使得测试用例与数据分离,便于维护和扩展。 五、脚本语言 QTP使用VBScript作为内置脚本语言,允许用户自定义逻辑,进行更复杂的测试操作。 六...
在IT行业中,MVC(Model-View-...通过分离关注点,这种架构提高了代码的可读性和可维护性,同时也便于团队协作。在实际项目中,开发者可以根据具体需求对每个组件进行扩展和定制,以达到最佳的性能和用户体验。
通过对背景进行建模,Pfinder能够从背景中分离出前景对象,即需要追踪的人体部分。这种方法的一个关键优势在于能够处理阴影和光照变化等挑战。 ##### 3. 实时性能与硬件需求 为了确保实时性能,Pfinder在设计时考虑...
OpenCV(开源计算机视觉库)是一个强大的工具,用于处理图像和视频数据,广泛应用于计算机视觉、机器学习和人工智能领域。这个"OpenCV动作识别源码.zip"文件很可能包含了一系列实现特定动作识别算法的代码示例。动作...
5. **仓储**:在新闻系统中,需要持久化这些领域对象。仓储(Repository)接口提供了一种封装数据访问的方式,使得业务逻辑与数据存储技术分离。 6. **语言建模**:领域专家(Domain Expert)和开发人员之间的沟通...
动作是QTP中的基本执行单元,而参数化则允许我们将数据与测试脚本分离,提高测试的灵活性和可复用性。这部分内容会讲解如何创建、编辑和调用动作,以及如何使用数据表进行参数化测试。 四、对象与属性 QTP中的对象...
ADR模式的核心思想在于动作直接与领域逻辑交互,然后将结果传递给响应器。这样可以更好地遵循单一职责原则,将不同类型的代码分离,便于测试和维护。在ADR模式下,HTTP方法是与领域逻辑分离的,允许领域逻辑保持业务...
例如,在处理用户请求时,一个控制器对象可能需要与多个服务对象协同工作。 #### 框架的本质 框架是一种预先设计好的软件结构,用于解决特定领域的问题。它为开发者提供了一个基础平台,使得开发者能够在此基础上...