设计模式在EJB中的应用
http://tech.ddvip.com 2006年07月17日 社区交流
本文详细介绍设计模式在EJB中的应用
1.分离了商业逻辑层和数据访问层;
2.能同时支持多个数据库;
3.但数据库类型更换时,不会设计到商业逻辑代码的大量修改.
EJB中将对数据库进行调用(如发出select等语句)称为会话bean(Sessionbean),而将对应数据库一个个记录的bean称为实体bean(Entity bean);由这两种类型的bean完成对数据库的访问.
会话bean一般和客户端应用是一一对应,而和数据库端联系紧密的是实体bean,EJB在实体bean(或直接在会话bean)和数据库之间使用了Adapter模式和Bridge模式,无意在实体bean和数据库之间又多了一层,称之为DAO(Data Access Object ),DAO实际就是设计模式的混合体.
我们以Java的宠物店中的Catalog为例,这是专门处理宠物店中的宠物类别,在对数据库访问中,有两个主要程序:CatalogEJB和CatalogDAO,我们从具体代码中看看设计模式是怎么应用的.
Bridge模式和Adapter模式
我们首先看看CatalogEJB代码:
public class CatalogEJB implements SessionBean {
protected CatalogDAO dao;
//从DAO工厂中获取一个DAO 这是调用工厂(factory)模式的一个实例
public void ejbCreate() {
try {
dao = CatalogDAOFactory.getDAO();
}
catch (CatalogDAOSysException se) {
Debug.println("Exception getting dao " + se);
throw new EJBException(se.getMessage());
}
}
....
}我们发现在CatalogEJB中并没有通常的会话bean那样有对数据库操作的"select .. from ."等之类SQL操作语句,这些都被封装到DAO的具体实现中(Concrete class).
责编:豆豆技术应用
正在加载评论...