J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候,三分钟就被人家满口的专业术语喷晕了,PO VO BO DTO POJO DAO,一大堆的就来了(听过老罗对这种现象的批判的朋友会会心一笑)。
首先声明偶也不是什么高手,以下总结都是自己的体会。不对之处请您多指教。
PO:
persistant object持久对象
最形象的理解就是一个PO就是数据库中的一条记录。
好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。
--------------------------------------------------------------------------------
BO:
business object业务对象
主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。
比如一个简历,有教育经历、工作经历、社会关系等等。
我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。
建立一个对应简历的BO对象处理简历,每个BO包含这些PO。
这样处理业务逻辑时,我们就可以针对BO去处理。
--------------------------------------------------------------------------------
VO :
value object值对象
ViewObject表现层对象
主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值。
--------------------------------------------------------------------------------
DTO :
Data Transfer Object数据传输对象
主要用于远程调用等需要大量传输对象的地方。
比如我们一张表有100个字段,那么对应的PO就有100个属性。
但是我们界面上只要显示10个字段,
客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,
这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO
--------------------------------------------------------------------------------
POJO :
plain ordinary java object 简单java对象
个人感觉POJO是最常见最多变的对象,是一个中间对象,也是我们最常打交道的对象。
一个POJO持久化以后就是PO
直接用它传递、传递过程中就是DTO
直接用来对应表示层就是VO
--------------------------------------------------------------------------------
DAO:
data access object数据访问对象
这个大家最熟悉,和上面几个O区别最大,基本没有互相转化的可能性和必要.
主要用来封装对数据库的访问。通过它可以把POJO持久化为PO,用PO组装出来VO、DTO
总结下我认为一个对象究竟是什么O要看具体环境,在不同的层、不同的应用场合,对象的身份也不一样,而且对象身份的转化也是很自然的。就像你对老婆来说就是老公,对父母来说就是子女。设计这些概念的初衷不是为了唬人而是为了更好的理解和处理各种逻辑,让大家能更好的去用面向对象的方式处理问题.
大家千万不要陷入过度设计,大可不必为了设计而设计一定要在代码中区分各个对象。一句话技术是为应用服务的。
欢迎指正。
--------------------------------------------------------------------------------
- 大小: 52.3 KB
分享到:
相关推荐
J2EE中常见术语解释 预览:<<RMI-IIOP>> Remote Method Invocation over the Internet-ORB Protocol(基于互联网的对象请求代理协议实现的远程方法调用) J2EE和EJB事实上的网络通信标准,基于RMI,同时又兼容...
J2ee常用名词解释 包含部分Jdeveloper 名词
java 词汇表速查手册 (附:Java相关名词的解释)
J2EE专业项目实例开发,很好的 值得看看 J2EE专业项目实例开发,很好的 值得看看
这篇指南不是为J2EE服务器及工具供应商准备的,它没有解释如何实现J2EE结构,也没有解释J2EE软件包。J2EE规范描述了J2EE结构并可以从下面的网址下载: http://java.sun.com/j2ee/docs.html#specs
j2ee j2ee j2ee j2ee j2ee j2ee j2ee j2ee j2ee
J2EE专业项目实例,算是毕业设计了,挺不错的,是别人的作品,拿来和大家分享
J2EE课件 J2EE课件 J2EE课件 J2EE课件 J2EE课件 J2EE课件 J2EE课件 J2EE课件 J2EE课件 J2EE课件 J2EE课件 J2EE课件 J2EE课件 J2EE课件 J2EE课件
j2ee 笔记 j2ee 笔记 j2ee 笔记 j2ee 笔记
J2EE J2EE J2EE J2EE J2EE J2EE J2EE J2EE J2EE J2EE J2EE J2EE
j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar...
j2ee实例j2ee实例j2ee实例j2ee实例j2ee实例j2ee实例j2ee实例j2ee实例j2ee实例j2ee实例j2ee实例j2ee实例j2ee实例j2ee实例j2ee实例
J2EE考试题目及答案.pdf
linux下基本环境搭建,j2ee开发环境的搭建,包括java环境变量,应用服务器,共享文件夹等。。。。
j2ee课件j2ee课件j2ee课件j2ee课件j2ee课件j2ee课件
J2EE专业项目实例开发_源代码.rar
《J2EE专业项目实例开发》源代码.rar
J2EE经典面试题及答案,基础性的知识!可参考