免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2283 | 回复: 0
打印 上一主题 下一主题

什么是ValueObject (VO 模式) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-24 10:19 |只看该作者 |倒序浏览
简单说,ValueObject的值(状态)一旦创建以后就不会改变了
。所以可以当基本数据类型
用。比如Java
中的String, BigDecimal, BigInteger都是ValueObject。StringBuffer就不是。
表示的是:VO对象相当于是一种新的数据类型了能够当作参数进行传递的!
Model_conf confVO = new Model_conf();
DTO模式或称VO
模式,是指将数据封装成普通的JavaBeans
,在J2EE多个层次之间传输。
常见的方式就是为实体对象建立一个Model类,该类只包含这个对象所有字段的getter和setter
。例如用户User实体有name, password字段,则建立一个UserModel类,public方法有getName,setName,getPassword,setPassword。这样就可以把UserForm作为参数传给其他函数。
可以充当是一个参数进行传递的!特别是在J2EE的各层之间进行传递处理!
我们可以通过定义一个简单的Java类(实现Serializable接口),其中定义一些属性,并提供相应的get和set方法来解决上面的问题。
使用ValueObject来封装业务数据
,并且有一个单独的方法
可以用来获取或者发送这个VO
,当客户端请求一些业务数据的时候,服务端就可以产生出一个VO
,并且将它赋值,最后,可以用传值
的方法传递给客户端。
这样的好处是减少网络对话,加速层之间的数据交流
,我觉得,这样更大的好处是使程序逻辑更加清楚,更加面向对象
。写VO
的时候,要实现Serializable
接口。
public UserVO implements Serializable {
     private String loginId;
     private String password;
     private String name;
     private String role;
     ... ...
}
示例如下:
public Model_conf getConf(int conf_id) {
        _DBUtil db = new _DBUtil();
        Model_conf confVO = new Model_conf();
        List rs = db.executeQuery("select * from url_conf where url_id="+conf_id);
        java.util.Iterator it = rs.iterator();
        try {
            if (it.hasNext()) {
                HashMap map = (HashMap) it.next();
                confVO.setUrl_add((String) map.get("url_memo"));
                confVO.setUrl_memo((String)map.get("url_add"));
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return confVO;
    }
如果客户端提交一个AJAX请求过来服务端能够产生出来一个VO对象。接收到这个VO对象之后
直接使用<userbean方法!
VO模式将来是我编写JAVABEAN的一个借鉴方法的!
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/84280/showart_2059036.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP