• JavaBean之我的理解


    JavaBean分为两种,其也可以称为POJO(Plain Ordinary Java Object):

      1、VO(View Object):值对象,主要用于封装页面上表单的数据;

      2、PO(Persisent Object):持久化对象,主要用于封装数据库表中的数据,其取名一般为表名;

    问题:

    在SSH2开发中的数据前进过程,VO、POJO、PO之间的转换有什么好处?

    如果这些O之间相互转换,我认为会增加以下问题:

    1、属性拷贝增加了大量的工作量;

    2、过多的对象转换带来性能上损失,而对象的内容几乎相同;

    3、容易造成混淆,既然都是内容相同的对象,为何不能使用一个,POJO就能代替大部分O,各个O之间相互转换的好处是什么?

    回答:

    VO(View Object):值对象,用于封装界面数据。POJO:类似于JavaBean的java类。

    PO(Persisent Object):持久化对象,也就是数据库表对应的类,主要是为了分离层与层之间的耦合性。

    首先应该遵守的原则:

    一个界面最好对应一个VO类,而不应该向界面传很多对象或List,用于显示或获取界面中的参数。一个数据库表对应一个PO类,而其他地方需要额外用到的类就是POJO了。

    举例:我需要在界面上显示所有的角色,点击角色选择角色下的所有用户,那么这个界面的数据类,也就是VO,应该包含三个元素:所有的角色,选择的角色,所选角色的用户,转换为VO对象就是:List<角色>、角色、List<用户>,这些数据涉及到两个PO类,也就是角色和用户,我们可以在后台根据业务需求876913451进行获取。那为什么会出现VO类,我直接把需要的所有数据,比如List<角色>、角色、List<用户>通过request传到界面上不就行了?这样从实现功能上说没有问题,但是假如把你写的程序给你别人看,别人乍一看,他知道你向界面传了多少对象?难道他必须要从头到尾看一遍你的业务逻辑代码吗?想想你在业务代码中这儿向request中传huiny30347121一个对象,那儿又传一个对象,这样很不现实,不利于二次开发(而大多数软件都是需要进行二次开发的),也不利于因为客户需求的变化改代码,而且最主要的是,这样不能体现面向对象思想,对于一系列数据,我们应该封装成一个类,这是基本的封装思想。

    至于属性的拷贝:相对于你后期需要改代码时的痛苦来说,这样写更清晰,更好,不是吗?

    对象转换上的性能损失:相对于B/S系统来说,制约用户访问速度的关键因素应该是网速吧,也就是客户端和服务器端的数据交换。但你可能会说,那为什么数据库经常提到性能问题呢,因为数据库有时需要处理几十万条数据,假如你的sql语句写的不精练的话,用户点一下按钮,可能多等待几十秒。但是对象转换不可能带来太多的影响,对吧!最后,假如你怕对象转换带来性能损失,那你就写一个对象得了,所有的代码都在里面写,这样好吗?所以,我们277413318必须要在性能、便于开发、便于维护之间找到一个平衡点。

  • 相关阅读:
    VS2010-MFC(Ribbon界面开发:创建Ribbon样式的应用程序框架)
    VS2010-MFC(图形图像:GDI对象之画刷CBrush)
    VS2010-MFC(图形图像:GDI对象之画笔CPen)
    VS2010-MFC(图形图像:CDC类及其屏幕绘图函数)
    VS2010-MFC(字体和文本输出:文本输出)
    VS2010-MFC(字体和文本输出:CFont字体类)
    VS2010-MFC(MFC常用类:MFC异常处理)
    矩阵快速幂
    Codeforces 510C (拓扑排序)
    UVA10305 Ordering Tasks
  • 原文地址:https://www.cnblogs.com/Ronson-Shen/p/3287673.html
Copyright © 2020-2023  润新知