资料来源:http://virusswb.blog.51cto.com/115214/458636 前端
BO:Business Object,业务对象。主要是承载业务数据的实体。处理业务逻辑的时候使用,数据结构也是针对业务逻辑创建的。web
PO:persistence Object,持久化对象。数据最终要存储,不管以何种形式存储,都必需要持久化。加入使用关系数据库存储,一个PO对应一条数据库的记录,或者是对象从数据库查询出来的结果集的一条记录。数据库
DAO:Data Access Object,数据访问对象。包含一些数据库的基本操做,CRUD,和数据库打交道。负责将PO持久化到数据库,也负责将从数据库查询的结果集映射为PO。后端
DTO:Data Transfer Object,数据传输对象。通常用来在前段和后台的数据传输,数据结构的简历是基于网络传输的,减小传输的数据量,避免传输过多无用的数据。网络
VO:Value Object,值对象。主要用在前段数据和控件的绑定操做中,以键值对的形式存在。能够从DTO转化而来,这么作的好处就是减小对于DTO的依赖,进一步减小对应后端的依赖。还能够增长前段的可测试性,也就是没有DTO,也能够对前段逻辑进行自动化的单元测试,能够经过MockDTO来达到测试的目的。数据结构
POJO(Plain Old Java Object)简单的Java对象,实际就是普通JavaBeans。其中有一些属性及其getter setter方法的类,没有业务逻辑,有时能够做为VO(value -object)或dto(Data Transform Object)来使用.固然,若是你有一个简单的运算属性也是能够的,但不容许有业务方法,也不能携带有connection之类的方法。单元测试
经过上面的这幅图来表达web,winform,silverlight,console表明不一样的前端类型。Domain表明领域对象,也能够是BLL。测试
转自:http://blog.csdn.net/mutou_user/article/details/37519513.net