Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29306573
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: Java

2009-09-24 10:19:47

简单说,ValueObject的值(状态)一旦创建以后就不会改变了 。所以可以当基本数据类型 用。比如 中的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对象之后

直接使用
VO模式将来是我编写JAVABEAN的一个借鉴方法的!


阅读(1461) | 评论(0) | 转发(0) |
0

上一篇:JSP开发的模式

下一篇:目前的JSP开发模式

给主人留下些什么吧!~~