动态加载抽象工厂

时间:2012-12-09 17:31:40

标签: java design-patterns dynamic-class-loaders

我正在尝试创建一些抽象工厂模式的变体 工厂应该允许插件式插入混凝土工厂的新实施。

e.g。

public class AbstractFactory  
{  
  //some code here  
  public static void addNewImpl(String implName, /*class path or something else*/)  
  {  
    //dynamic class validity check  
    //save class somehow (db I guess)  
  }  

  public static getImpl(String name)
  {
    //is impl available  
    //return if valid  
  }  
}  

我不确定我是否正确解决了这个问题,或者我是否应该重新考虑我的设计。

1 个答案:

答案 0 :(得分:2)

我会继续这样:

  • 让你的代码编译: - )
  • 您需要定义构建目标对象的工厂界面
  • 由于您的类通常在应用程序启动时加载,因此您的DelegateFactory(您称之为AbstractFactory)在启动时从类路径中读取属性文件就足够了。
  • 对于属性文件中的每个条目,使用密钥作为lokup,将类名作为条目的值。
  • 坐下来