java的VO和PO的用途

摘要:
最近,我在做一个项目,并使用了springMVC,这加深了我对VO和PO的理解。1在VO==ValueObjectPO==PersistentObjectVO之前编写的提示对应于页面,PO对应于实体/关系映射。2在你的程序中,如果没有VO,这意味着你的程序可能不是用面向对象的思想设计的,或者你同时把PO当作一个VO。

最近在搞一个项目,用到了 springMVC,加深了我对VO和PO的理解,有感而发。

1 写在之前的提示

VO == Value Object

PO == Persistant Object

VO对应页面,PO对应实体/关系型映射

2 在你的程序中,如果没有VO,那么说明你的程序很可能不是以面向对象的思想来设计的,或者说你把PO同时当成了VO使。

实体:

     Order {

     id

     createDate

  }

当我页面上需要对订单进行创建时间过滤时,有两种方式,一种方式是非面向对象的设计,另一种是在PO中加入 createDateStart、createDateClose,即

  Order {

     id

     createDate

     createDateStart

     createDateClose

  }

这个时候就是Order 即使PO也是VO

为什么不用更优雅的设计

  OrderValueObject {

     id

     createDateStart

     createDateClose

  }

  

  OrderPersistenceObject {

     id

     createDate

  }

不是更清晰、更优雅吗?什么?代码量很高?哦,朋友,你不知道有代码生成器这回事儿吗?

免责声明:文章转载自《java的VO和PO的用途》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ListView圆角实现批量obj格式直接转gltf下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

修改Jenkins用户的密码

说明:本方法仅适用于jdk6+、tomcat6+和Jenkins专有用户数据库的Jenkins!很多童鞋在使用jenkins的时候忘记密码了,然后各种蛋疼。登陆上Jenkins服务器,进入到Jenkins。Jenkins专有用户的数据存放在JENKINS_HOME/users目录。然后输入用户名,密码111111然后就进去了.Jenkins关闭和重启详细介绍...

模拟浏览器请求(WebRequest)

//参数stringblockType=context。要求从其他公司传递的参数[“BlockType”]///stringblockNo=context.Request.Params[“BlockNo”];//blockList.其中(c=>blockType=SZ&...

cocosCreator中Protobuf的简单使用

CocosCreatorwebStorm或VSCode安装node.js下载protobufjs6.8.6步骤:...

oracle 在sql中显示blob的字符串

最近在用oracle的过程中用到了对blob字段模糊查询的问题,对oracle来说,我并不是高手,找了很多的资料终于能够查出来了。以上只是自己做了个简单的处理,相信肯定有更好的方法,希望大家帮忙,但是感觉dbms_lob函数下的方法真的很好用。...

Python-正则

,三:量词*重复0次或多次{0,}+重复一次或多次{1,}?重复0或1次{1,0}{n}重复n次{n}{n,}重复n次,或更多次{n,m}将n次重复到m次Escape:如果字符串中有特殊字符要匹配,请在常规字符和字符串前面添加r。如果特殊字符在字符组中,则它们是匹配的特殊字符,但为了记忆,匹配时会转义所有特殊字符。...

springMVC使用map接收入参 + mybatis使用map 传入查询参数

测试示例:控制器层使用映射来接收请求参数。从Debug中可以看到,请求中的参数值都是字符串形式。如果接收参数的映射直接传输到服务,mybatis将在接收参数时报告错误。因此,您需要首先对请求中的参数1packageorg.slsale进行预处理。测验23导入java.util。日期4导入java.util。HashMap;5导入java.ut...