请问这个叫什么O? PO BO

06-11-29 gongxiuhai
              

数据库中有两个表

表1中有A,B两个字段. 表2中有B,C两个字段. B和C关联

现在我想做个类. 把表1和表2的数据关联起来. 如:

public Class Table1Bean{

private String a;

private String b;

private Table2Bean table2Bean;

set/get method...

}

public class Table2Bean{

......

}

我想知道Table1Bean 叫什么呢? PO?BO?POJO?

以Table1Bean 这种封装数据的方式,直接传到页面,合理吗?

请有经验的指导指导,谢谢!

              

banq
2006-11-30 15:12

你这是从数据库入手,对象为数据库服务,不是一种真正面向对象做法,真正oo应该是数据为对象服务,正好倒过来。

在你这种情况,这个对象叫VO,值对象,或者DTO,数据传送对象。

gongxiuhai
2006-11-30 21:44

谢谢bang 大哥,叫法太多,有点晕,呵呵.

zhaow8810
2006-11-30 23:31

首先你应该荣幸能加入到这个论坛家庭。因为有个带头大哥还算比较资深。大家既然称为家庭就不忘互相帮助我也是一步一步在走。有些问题问一个部门的技术总监他可能觉得你的问题太简单了自己可能回答过很多这样的问题已经不愿意在深纠了。所以我就简单介绍下o吧。面向对象的系统里难免有很多带o的名词。对象嘛~这样容易造成混淆 混淆原因太多了建议你通读下jdon的帖子会有不少收获。常见的o

vo 值对象。它算是业务层的数据,如用来临时保存数据的对象。比如页面表单提交的参数比较多不容易将很多参数以多个字符串参数的形式传递给业务逻辑处理。这时就经常会使用对象来保存数据get set。而这个对象作为数据的载体被传输到其他层所以叫vo

po 持久对象。它算是持久层的数据,这个其实和上所述的本质上差不多也是用对象保存数据的只不过其主要针对于能与持久层数据库表字段对应,也就是说想把这个对象持久化到数据库中。而这个准备持久化的对象就是po

bo 逻辑对象 这个对象区别于vo主要作用不是保存数据也就是没有很多的get set而是一些复杂的逻辑操作。完成一定的业务功能。

pojo 简单的java对象现在领域驱动设计中把vo和po综合为pojo 并且用pojo作为实体模型来充当数据的载体。在各层中穿梭使问题变简单话。

dto数据传输对象在ejb中这么叫 实质作用和vo差不多

gongxiuhai
2006-12-03 00:25

呵呵,其实这个问题的起因就是因为我想给这个包起个名字.

听您说的,POJO可以在各层中穿梭是吧.

其实我这个O,可以说满足了三点吧.

第一,从数据库中的值取出.放在这个BEAN里.

第二,页面呈现数据时,以这个BEAN为TYPE(struts tag).

第三,BEAN中可能有些字段不是数据库中的,例如 rowcount .当然这个rowcount 不在这个Bean 里算,也是set/get. 的.

我估计这个BEAN也只能叫POJO了吧!