Author: Anders小明
(2008-1-12更新)
从以上的分析中,我们可以了解到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 manual 324
lec-5 领域模型 DomainModel.ppt
python库。资源全名:domainmodel-0.12.tar.gz
python库。 资源全名:domainmodel-0.2-py2.4.egg
Java MVC framework, agile, fast, rich domain model, made e.zip
领域模型XText Domainmodel示例(按发行版)
MapperRegistry是工厂方法的变形?摘要本文通过由ActiveRecord模式到DataMapper模式(使用工厂方法)再到DataMapper模式(使用MapperRegistry)的一系列重构,探讨模式背后隐藏的思想和面向对象设计原则。...
jar包,官方版本,自测可用
Domain adaptation is one of the most challenging tasks of modern data analytics. If the adaptation is done correctly, models built on a specific data representation become more robust when confronted ...
In Techniques of Model-Based Control, two leading experts bring together powerful advances in model-based control for chemical-process engineering. Coleman Brosilow and Babu Joseph focus on practical ...
深入理解ApplicationDomain和SecurityDomain
再和前台对接的时候一直报错:invalid url domain 在网上查找了很多资料,有说端口的问题,也有其它各种原因的,一大堆,最后我发现以上的说法都不准确,这是我配置的地址(错误的地址) 把配置地址的http://去掉...
'Eric Evans has written a fantastic book on how you can make the design of your software match your mental model of the problem domain you are addressing. 'His book is very compatible with XP. It is ...
ppt演讲稿 博文链接:https://taowen.iteye.com/blog/226387
Deep generative model with domain adversarial training for predicting arterial blood pressure waveform from photoplethysmogram signal
Wavelet Transform Domain Filters
Different objects and prototypes will help you create model for your business process and see how DDD develops common language for developers and domain experts. Context map will help you manage ...
“仿射模型能比块平移模型更好地拟合真实运动场景 ,但待解的参数也相应地增加了. 基于梯度的搜索算法在高阶问题中存在局部极小和收敛速度的缺陷 ,基于 Hough 变换和 Gabor 滤波等的变换域方法同样存在运算量的问题 ,...