从以上的分析中,我们可以了解到Domain Model分为三种类型:
0. 全局常量对象
1. 长生命周期业务对象(类似保单对象);
2. 交易过程的Transaction对象,几乎没有生命周期的;
3. Request/Response对象。这类对象以前没有识别的,通常和VO混在一起;但是在IAA中以及电信业的模型是这类对象是独立存在,并被持久化的;Request对象建立在增量更新上很有用。当然他们也是几乎没有生命周期的。
并非所有的业务系统都拥有这三类对象!相当一部分的业务系统,并没有显著的长生命周期对象,因而没有明确的增量变更操作类型及其规则,业务操作是直接更新业务对象,也就没有Request以及Response对象;同时此类业务系统的Transaction对象也通常不存在;
Domain Model的级别:
但不论是那种类型对象,都拥有一个属性,对象等级;对于保险系统来说,保单对象,产品对象以及组织对象是一级对象,而险种和角色等都是二级对象;这点对于设计Repository以及服务粒度都有影响。
关于VO对象的讨论:
VO对象是一种技术类型对象,存在于Web,Domain等层次,其存在的意义是提供集成能力;其意义是:1. 保护系统的信息边界,提供一种结构可以使其它系统或者组件通过编码方式获取系统内信息的方式;2. 保护系统的事务边界,领域对象技术上携带着持久化信息,通过VO可以屏蔽得以屏蔽。常见的VO对象存在于Web层和Domain层。
因此,VO对象的存在只是为了集成而存在,其是否存在的取决于两个方面:框架提供的事务边界以及对象路径访问能力。
Domain层VO对象,通常是用于不同Domain组件间的访问。但随着架构的改进,集成代码独立存在,而不再嵌入到组件内部,组件的边界问题保护不复存在;更进一步的是,框架提供自动化的接口适配映射能力的增强。因而VO对象也失去存在的意义。
Web层VO对象,以SWF为例,早在SWF 1.x时代,框架就提供了丰富的对象路径访问能力,但其Web交互是典型的MVC2方式,事务边界在view的render前关闭,因而导致需要特定的 VO对象来避免持久化信息问题;而SWF 2.x时代,view的render是在事务边界内,VO不再需要。
分享到:
相关推荐
- **领域模型(Domain Model)**:是对领域中的概念、规则和关系进行建模,形成一种可以被软件实现的语言。 - **界限上下文(Bounded Context)**:是领域模型的边界,在这个边界之内,语言和概念是一致的。界限上...
PGM分为三个主要理论部分:表示理论、推理理论和学习理论。 表示理论关注如何构建概率图模型来描述变量间的结构和概率关系。图中的节点代表随机变量,边则表示变量间的关系。常见的PGM类型包括贝叶斯网络(Bayesian...
它将应用程序分为三个主要部分:Model(模型)负责数据和业务逻辑,View(视图)处理用户界面展示,而Controller(控制器)作为两者之间的桥梁,处理用户交互并更新模型或视图。 2. **MVVM(Model-View-ViewModel)...
CIP分为三个级别:基础级、标准级和优化级,分别对应不同的过程性能水平。 其次,CMMI 2.0引入了“实践域”(Practice Domain)和“目标”(Goal)的概念。每个实践域都是一组相关的目标,这些目标反映了在特定业务...
模块之间通过三种链接方式互连:数据流(packet streams)、统计线(statistic wires)和逻辑关联(logical associations)。 - **进程域(Process Domain)**: 进程(processes)类似于执行程序,它们基于进程模型(Process ...
代理模式可以分为访问代理、虚拟代理和远程代理等不同类型。 总的来说,J2EE设计模式是构建可维护、可扩展的企业级应用的关键,它们涵盖了从对象创建到系统架构的多个层面,提供了最佳的编程实践,以应对复杂的企业...
Java内存分为两种主要类型:栈内存(Stack)和堆内存(Heap)。栈内存存储速度较快,数据可以在多线程间共享,其中包含基本数据类型、Java指令代码、常量、对象实例的引用以及方法代码。而堆内存大小可动态变化,...
DDD分为两种类型:战术型DDD和战略型DDD。战术型DDD关注的是构建领域模型的技术和方法,例如聚合、实体、值对象、服务等概念的运用;而战略型DDD则关注整个系统的设计和架构,如领域、子域、限界上下文(Bounded ...
10. **SQL Server物理文件**:mdf(主数据文件)、ldf(日志文件)和ndf(辅助数据文件)是SQL Server数据库的三种物理文件类型。 11. **系统数据库**:master、model、msdb和tempdb是SQL Server的主要系统数据库。...
代理模式可以分为访问代理、虚拟代理和远程代理等不同类型。 以上这些设计模式是J2EE开发中的核心概念,它们通过提供标准的解决策略,帮助开发者构建出高质量、可维护的企业级应用。掌握这些模式是提升程序员设计...
代理模式可以分为访问代理、虚拟代理和远程代理等不同类型,提供了更多的灵活性和控制。 总的来说,J2EE设计模式是提升软件质量、可维护性和可扩展性的重要工具,它们通过模式的抽象和复用,降低了系统复杂度,促进...
- **目录区**:分为三个标签页——Model、Subject Areas、Domains。 - **Model标签**:展示与模型相关的各种元素,如Domain、Source、Entities、Subject Areas等。 - **Subject Areas标签**:专用于显示主题区域...
OPNET的模型域分为三个层次:网络域(network domain)、节点域(node domain)和进程域(process domain)。 1. **网络域(Network Domain)** - 定义了通信网络的拓扑结构,通信实体为节点(nodes)。 - 支持单向和全双工...
这些方法主要可以分为三类:全域哈希(full-domain hash)、指数反转(exponent inversion)和通勤盲化(commutative blinding)。 #### 二、全域哈希(Full-Domain Hash) 全域哈希是最早提出的IBE实现之一。在这种方案...
例如,组织机构模型可以分为组织机构信息、人员信息和字典数据三个包。 2. **关系图元**:不同类型的连接线表示不同关系,如一对一、一对多、多对多等,每个关系都有其在物理模型中的对应表现。 通过以上步骤,设计...
这种模式将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。** **模型(Model)**是应用程序的核心,负责管理业务逻辑和数据。它与数据库或其他数据源交互,处理数据并返回结果。在...
它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller),以实现业务逻辑、数据处理和用户界面的分离,从而提高代码的可维护性和可扩展性。 **1. MVC入门** 对于初学者,理解MVC的基本...
#### 三、UML图类型及应用场景 UML图分为两大类:结构图和行为图。 ##### 1. 结构图 - **类图 (Class Diagram)**:展示系统中类的静态结构,包括类之间的关系、属性和操作。 - **组件图 (Component Diagram)**:...