发信人: Javor (猪头小队长·Java入门中...), 信区: J2EE
标 题: struts中的几种类型的对象的区分
发信站: BBS 水木清华站 (Tue Jun 29 14:19:09 2004), 站内
在struts中的几种常用对象如下:
1.业务对象(BO)
1.1 实体业务对象(Entity)
1.2 过程业务对象(Process)
1.3 事件业务对象(Event)
2.数据传递对象/值对象(DTO/VO)
3.FormBean
4.持久化对象(PO)
我的理解是:
1.BO就是业务逻辑中所涉及的所有的对象,使用这些对象来进行逻辑操作。
EJB中的EB就是一种实体业务对象
EJB中的SB就是一种过程业务对象
2.DTO主要是用来在不同层之间传递数据,是细粒度数据的粗粒度视图,它
和BO的区别就是它不包含任何的业务逻辑,是BO的一个快照。
3.FormBean是Html Form映射成的一个对象,主要是用来把Html Form中零
散的数据封装起来,以对象的形式来提供OO方式的操作。
4.PO应该属于BO的实体业务对象部分,在BO里面应用了DAO模式,实现了业
务逻辑和数据访问逻辑的分离,PO就是数据访问逻辑的部分。hibernate
应该属于这种。
总体结构如下图:
+-----------------------+
| HTML FORM | --
+-----------------------+
| FormBean | ActionServlet
+--------[DTO]----------+
| BO | --
| +----+ [DTO] +----+ |
| | BO |<----->| BO | | 业务逻辑(Service)
| +----+ +----+ |
| +-------------------+ | --
| |PO(JDBC) | |
| +-------------------+ |
+-----------------------+
| DB |
+-----------------------+
---------------------------------------
btw:我不太同意,bo和po没有关系,dto/vo是bo操作的对象.在hibernate中,po没有状态的时候可以继承逻辑操作(通常static)成为bo.在业务层上还有一个vo(view object ,not value object)层,与页面的表示相关.
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=35624