PO、VO、FormBean的思考
理清了上述概念,好,我们就开始讨论,为什么需要它们,为什么不需要它们。首先说PO和VO吧,它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(当然我是指他们的属性)。正因为这样,PO独立出来,数据持久层也就独立出来了,它不会受到任何业务的干涉。又正因为这样,业务逻辑层也独立开来,它不会受到数据持久层的影响,业务层关心的只是业务逻辑的处理,至于怎么存怎么读交给别人吧!不过,另外一点,如果我们没有使用数据持久层,或者说没有使用hibernate,那么PO和VO也可以是同一个东西,虽然这并不好。其次,让我们看看FormBean和VO,如果简单地讲,我们是可以不需要FormBean的,它只是struts带来的一部分,而VO是无论如何不能舍弃的。如果让FormBean直接到业务层(它本来应该生活在控制层),那么会带来什么?View和Model就出现了强耦合,如果想改一下view的表示,整个业务逻辑都得改,恐怖的事情啊!
这些对象概念的出现其实就是体现了一种层的思维,也是体现了一种框架的思维,在层与层之间我们需要什么?我们应该怎么通信,其实大家认真地用笔画上几个图就可以知道了。做web应用尤其是企业应用,切忌像楼上某些朋友说的,一个东东从头到尾,那是非常低劣和错误的设计。我们不要单纯地就为了某些对象去争论什么,它们更多的只是思维。这样的思维给我们带来了哪些好处,不言自明,当然,我们也不得不否认,我们因此失去了某些东西,比如局部的性能或者繁琐的代码和调用过程,只是自己衡量一下,它是否值得。
本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/360030,如需转载请自行联系原作者
PO、VO、FormBean的思考相关推荐
- JavaEE PO VO BO DTO POJO DAO 整理总结(转)
阅读目录 1.DAO[data access object]数据访问对象 2.DTO[data transfer object]数据传输对象 3.PO[persistant object]持久层对象 ...
- JavaEE PO VO BO DTO POJO DAO 整理总结
阅读目录 1.DAO[data access object]数据访问对象 2.DTO[data transfer object]数据传输对象 3.PO[persistant object]持久层对象 ...
- po vo pojo domain 区别
POJO = "Plain Old Java Object",是MartinFowler等发明的一个术语,用来表示普通的Java对象,不是JavaBean, EntityBean ...
- java的(PO,VO,TO,BO,DAO,POJO)类名包名解释
java的(PO,VO,TO,BO,DAO,POJO)解释 action包 顾名思义请求,主要是和view 即我们所说的视图就是页面打交道,action类 是 操作方法,对于页 面Form 表单的操 ...
- java中一些对象(po,vo,dao,pojo)等的解释
一.PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包含任何对数 ...
- java的(PO,VO,TO,BO,DAO,POJO)解释
java的(PO,VO,TO,BO,DAO,POJO)解释 O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写.通俗点讲,就是将对象与关系数据库 ...
- java的(PO,VO,TO,BO,DAO,POJO)解释1
java的(PO,VO,TO,BO,DAO,POJO)解释 O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写.通俗点讲,就是将对象与关系数据库绑定 ...
- 领域模型命名规约【PO,VO,POJO,BO,DTO,DO,JavaBean】
PO,VO,POJO,BO,DTO,DO,JavaBean 在这之前我先说一下,在阿里巴巴开发手册中有提到这种领域模型命名规约,即如下图: 下面是更加详细的介绍: po PO(Persistant O ...
- java 数据对象_java的几种对象(PO,VO,DAO,BO,POJO)
一.PO persistant object 持久对象,可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包含任何对数 ...
- java的几种对象(PO,VO,DAO,BO,POJO)解释
本文转自: http://blog.csdn.net/bzhxuexi/article/details/8227808 Java的几种对象(PO,VO,DAO,BO,POJO)解释 一.PO:pe ...
最新文章
- Android常见XML属性解析
- VTK一个面向对象的可视化类库
- TCanvas 学习
- 牛客练习赛50-记录
- CVPR 2020 论文大盘点-目标检测篇
- Keras同时用多张显卡训练网络
- markdown编辑器语法——字体、字号与颜色
- Linux如何搭建Java部署环境
- python 调用 c 生成数组_使用C类型如何将数组从C++函数返回到Python
- 【学习总结】GirlsInAI ML-diary day-5-布尔表达式/Bool
- 计算机网络医院拓扑图方案设计,【方案】某医院计算机网络综合布线系统设计...
- The proxy server received an invalid response from an upstream server.
- python dateutil_安装python dateutil
- 无线网检查服务器在那,无线网络服务器地址在哪里找
- mysql查看占用内存或者CPU高的SQL
- 网络趣事 ❀ 为什么人们喜欢机械键盘
- java pdf 首行缩进_java使用iText生成pdf文档的对齐方式
- 采用头插法和尾插法建立单链表
- GDOI2018爆炸记
- 《少年的你》首映 易烊千玺坦言哭戏最有挑战
热门文章
- 都在建议,不要直接使用 @Async 注解,为什么?
- 实现一个全链路监控平台很难吗?Pinpoint、skywalking、zipkin,哪个实现比较好?...
- G1的Region是如何划分数量和大小的?
- 你能说出多线程中 sleep、yield、join 的用法及 sleep与wait区别吗?
- 西湖大学教授:都说不唯论文,那我们发表论文是为了什么?
- 吴恩达新书《Machine Learning Yearning》完整中文版 PDF 下载!
- DeepMind“钓鱼执法”:让AI引诱AI说错话,发现数以万计危险言论
- Transformer大升级!谷歌、OpenAI联合推出分层模型,刷榜ImageNet32刷新SOTA
- Batch Size对神经网络训练的影响
- 身份证丢失后被刷脸欠上万贷款,银行:人脸识别到就是你借的!