设计模式在EJB中的应用

http://tech.ddvip.com   2006年07月17日    社区交流

本文详细介绍设计模式在EJB中的应用

  在Catalog这个示例中使用了设计模式的Bridge模式,判断是否是某种模式,主要依据其参与者的种类和相互关系,我们先看看Bridge模式的定义和参与者:

  Bridge模式是将抽象和行为划分开来,各自独立,但能动态的结合起来(好象搭建了一座桥)。在本例中,是将商业逻辑和数据库访问这样的行为划分开来,数据库访问专门放置在DAO中了。

  Bridge模式需要两个接口(抽象类和接口通称为接口),一个用来封装抽象部分,本例中是封装商业逻辑,是CatalogEJB;还有一个是封装行为(Implementor),本例中是CatalogDAO,看看CatalogDAO代码:

public interface CatalogDAO {
public Category getCategory(String categoryID, Locale l)
  throws CatalogDAOSysException;
public Page getCategories(int start, int count, Locale l)
  throws CatalogDAOSysException;
public Product getProduct(String productID, Locale l)
  throws CatalogDAOSysException;
public Page getProducts(String categoryID, int start, int count, Locale l)
  throws CatalogDAOSysException;
public Item getItem(String itemID, Locale l)
  throws CatalogDAOSysException;
public Page getItems(String productID, int start, int size, Locale l)
  throws CatalogDAOSysException;
public Page searchItems(String query, int start, int size, Locale l)
  throws CatalogDAOSysException;
}

  Bridge模式中参与者还需要有行为接口的具体实现(ConcreteImplementor),在本例中是CatalogDAOImpl,虽然在目前宠物店中只有一个ConcreteImplementor,但是可扩展为到Mysql XML等数据源访问,比如你可以自己新增一个叫CatalogDAOImplMysql,也是作为CatalogDAO的子类。

责编:豆豆技术应用

正在加载评论...