EJB的七个关键点

1.数据访问对象(Data Access Object)
DAO模式抽象和封装了所有对数据存储的数据访问实现。DAO管理对数据存储的连接和访问。DAO实现了使用特有数据存储所要求的API和必需的逻辑;其中实现的细节与组件的代码相隔离,但却可以通过简单的外部接口来访问。于是业务组件能够使用这些简单的外部接口访问底层数据存储中的持久性数据。
对于EJB来说,DAO应该就是EntityBean。

2.值对象(Value Object)
使用VO来封装数据,这样它便可以在一个调用中传递。注意VO要实现Serializable接口。

3.值对象装配器(Value Object Assembler)
VOA负责通过装配来不同BusinessObject的数据来创建复合VO,并将数据返回给客户。
在EJB中,主要是创建SessionBean来实现VOA。

4.值列表处理程序(ValueListHandler)
VLH使用SFSB进行建模,并实现ValueListIterator。当一个客户发送请求时,VLH执行查询、创建ValueList、使用VO来传播VL,并缓存私有列表。根据客户的请求,VLH创建一个新的VO集合,串行化该集合,然后将该集合返回给客户。VLH负责创建、操纵VL,并跟踪值列表和当前索引的大小。

5.服务定位器(Service Locator)
SL抽象了使用供应商提供的参数来设置正确的InitialContext的复杂性,于是使用命名服务API来定位所需的对象。然后它从客户端创建BusinessObject,并给客户提供一个简单的接口。客户能够使用这个简单的接口来创建一个BusinessObject,这将会简化客户端的代码。其他的客户可以重新使用SL。

6.会话外观(Session Facade)
以Session Facade的形式使用SessionBean来封装和隐藏参与业务流程的业务对象之间交互的复杂性。SessionFacade向客户提供了一个统一的、粗粒度的访问层,并负责定位、创建和执行业务对象中的业务逻辑。SessionFacade也处理业务对象之间的交互和关系。

7.业务代表(Business Delegate)
BD提供了业务服务的客户端抽象,并隐藏了业务服务的底层实现细节。这样便减少了表示层客户和业务服务之间的耦合度,对客户屏蔽了业务服务API的变化。甚至在客户对业务服务API的变化是不可写的情况下,BD在业务服务API变化的时候自己要求修改。

总结:若全部使用这些模式+MVC的话,那么一个J2EE系统可以包含这么多层:
JSP(表示层的VIEW)
Servlet(表示层的Model和Controller)
Servlet或JAVA类(BusinessDelegate)
SessionBean(Session Facade)
SessionBean(ValueListHandler和/或Value Object Assembler)
EntityBean或JAVA类(Data Access Object)
EIS
此外,还没有包括Service Locator、Value Object等在各层间都可能出现的模式。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值