一、VO和DTO
VO: Value Object
DTO: Data Transfer Object
个人理解VO和DTO是类似的东西,原则上VO和DTO只有Public Fields,主要用于进程之间数据传递的问题,VO和DTO不会传递到表示层,在业务层就会被吸收。但看到很多人在建立VO和DTO时,也含有Setter,Getter属性和一些其它的辅助方法,这也无可厚非,我自己也不能确定这对不对。望大家给出意见。
二、Entity和Domain Object
Entity和Domain Object应该是类似的东西,我觉得这两者概念上可能与Biz Object(Business Object)有所不同,但我看到网上很多文档都把他们当成类似的东西。
Entity和Domain Object除了有Setter,Getter属性外,还有仅仅属于自己的一些专有(special)方法,如CRUD及其他专有方法,和有一些Services接口,并不涉及Domain Object与Domain Object之间关系的一些方法。也就是说Domain Object负责数据持久化,这可以由其IDataServices接口来实现。Entity和Domain Object更强调具体是哪一个对象,或者说是实例化的Entity和Domain Object对象。
如果用Domain Object来设计程序,不自觉地就会遵守一些重构策略(如Divergent Change、Shotgun Surgery、Switch Statements等,具体可以看Rickie的blog),我们知道Domain Driven Design这本书出现在Refactoring这本书之后,看来也是Martin Fowler对Refactoring进一步总结、升华的结果。用Domain Object来设计程序,降低了类之间的耦合,可以不自觉地达到Refactoring结果。看来出现Refactoring后,Domain Object的出现只是时间的问题。
idior的O/R Mapping 基本概念和一个困扰我长时间的问题也谈到了Entity和Domain Object
三、Biz Object
个人理解Biz Object更加专注于业务实现,主要强调业务类之间的关系。这也是它与Entity或Domain Object的不同之处。
在具体的程序中有时还会有Manager类,用于管理Biz Object和作为Biz Object的Facade。
我一直没有成型的架构,下一步抽时间看看Domain Model 探索和EDRA,我更觉得架构不用通用,可以根据一些典型的业务建立合适的架构,更希望大家能给出好的架构。
分享到:
相关推荐
Spring Boot基于 Mybatis 自动生成Entity,controller、serviceImpl ,Dao,方便开发,无需手写
简单的EntityFramework4.3+三层+DTO,如果需要简化版的,我的资源里有一个不含DTO的版本。 这个Demo的主要功能是: 1、实体类的创建、复杂类型的嵌套 2、实体类的配置(主键、外键、一对一、1对多,多对多) 3、...
自己实现的一个Android中将任意实体类对象转为Json的工具类。适用于Android开发。
如果想生成未预置的代码,如vo对象、前端vue页面以及其他自定义代码等,需要做一些定制和扩展来实现。 从使用角度而言,官方资料介绍得比较简要,要实际使用,仍然需要进行具体的尝试和摸索,包括必要时看下源码...
分层领域模型对象的命名与之间的转换关系, 附代码 与 阿里巴巴java开发规范.pdf下载链接
安卓开发类库和jar包httpmime-4.1.2.jar org.apache.http.entity.mime
对于经常写重复性代码的entity,dao,service,本例子中写了一个简单的自动生成小程序,有需要者可以下载
spring-boot-plus是一套前后端分离单体...快速生成后台代码: entity/dto/query/vo/controller/service/mapper/xml 集成Swagger/Knife4j,可自动生成api文档 集成Redis缓存 集成HikariCP连接池,JDBC性能和慢查询检测
mybatis逆向工程生成Entity/Mapper/Mapper.xml;mybatis逆向工程生成Entity/Mapper/Mapper.xml;mybatis逆向工程生成Entity/Mapper/Mapper.xml;mybatis逆向工程生成Entity/Mapper/Mapper.xml;
throw new ArgumentNullException("The Graphics object is 'null'"); From.Paint(g); To.Paint(g); } /// /// The custom menu to be added to the base menu of this entity /// </summary> /// ...
entity, C++ 最小实体组件系统单头库 实体最小的实体组件系统。特性vt 。ECS标记和组基本事件处理安装在项目中包含 entity 文件夹。基础 0.包含实体#include "entity/World.hpp" 1.定义组件// not
ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,早期被称为 ObjectSpace,现已经包含在 Visual Studio 2008 Service Pack 1 以及 .NET Framework 3.5 Service ...
entityframework框架源代码,需要深入了解entityframework的同学可以下载深入学习研究
该工具可以对接数据库,将数据库中的表转换为java的实体类和DTO类。
中文名: Beginning C# Object-Oriented Programming (第1版, 涵盖.NET 4.0 and C# 4.0) 原名: Beginning C# Object-Oriented Programming, 1st edition 作者: Dan Clark 资源格式: PDF 出版社: Apress书号: 978-...
Entity Framework is a highly recommended Object Relation Mapping tool used to build complex systems. In order to survive in this growing market, the knowledge of a framework that helps provide easy ...
一般使用springjdbc、hibernate的sql查询,库获取到的数据都是List, Object>>结果集,如果我们要转化为JavaBean,则需要做一系列的map.get(),然后obj.set()。 此工程中就是解决List, Object>>转化为JavaBean工具类...
Entity Framework的简单应用实例。三层架构
简单的EntityFramework4.3+三层,这个版本不含DTO,如果需要有DTO的,请到我的资源里找。 这个Demo的主要功能是: 1、实体类的创建、复杂类型的嵌套 2、实体类的配置(主键、外键、一对一、1对多,多对多) 3、默认...
/// <param name="entity"></param> /// <returns></returns> public abstract string EditOrder(T entity); /// /// 编辑单据详细信息 /// </summary> /// <param name="entity"></param> /// <returns>...