工厂模式在Struts中的使用 ModuleConfig
//接口interface ModuleConfig{ //一些getter setter find方法 对DataSource MessageResource ActionMapping等资源文件进行操作}//就是 具体产品类class ModuleConfigImpl implements ModuleConfig{ //用于产生一个默认的ModuleConfig对象public ModuleConfigImpl(String prefix){//初始化默认的资源类型 大部分为null,一些指定了基本类型} /**Struts_config.xml中的<action-mapping>配置项*/ protected HashMap forwards; protected HashMap messageResources; //省略其他的一些属性}//工厂类abstract class ModuleConfigFactory{//创建产品abstract ModuleConfig createModuleConfig(String prefix);//获得工厂类对象ModuleConfigFactory getModuleConfigFactory(String prefix){//返回DefaultModuleConfigFactory对象return new DefaultModuleConfigFactory(prefix);}}//工厂类的默认实现class DefaultModuleConfigFactory extends ModuleConfigFactory{//实现抽象方法ModuleConfig createModuleConfig(String prefix){return new ModuleConfigImpl(prefix);}}/**调用方法ActionServlet类中的init()方法:*///实例工厂类ModuleConfigFactory moduleConfigFactory=ModuleConfigFactory.createModuleConfigFactory();//获得产品ModuleConfig moduleConfig=oduleConfigFactory.createModuleConfig(prefix);
?
Sturts使用工厂类创造了ModuleConfig对象,其实还是使用了面向接口编程的方法,利用接口来动态的指定其子类,便于扩展
1 楼 programlv 2010-10-30 http://dl.iteye.com/topics/download/e9312e7c-ae49-4cf2-9d4c-1f5f5221839a