代码之家  ›  专栏  ›  技术社区  ›  Overdose

Java库架构

  •  3
  • Overdose  · 技术社区  · 17 年前

    索梅利布 罐子 在 .

    2) In 有 哪个实现 SomeLib。一些接口 .

    SomeLib 必须能够创建 some包裹。某个类 无建筑实例 SomeLib 每次

    SomeLib 类似这样的 .

    我正在使用Netbeans。

    3 回复  |  直到 17 年前
        1
  •  3
  •   Daniel Rikowski    17 年前

    你可以添加一个硬编码的依赖项,但如果你打算重用你的库(即使你没有),你也应该不惜一切代价避免它

    请改用此模式:

    1. 创建 工厂 SomeInterface 库中的实现。(参见 Factory method pattern 了解更多信息)

    2. 在 SomeProject 你必须注册你的 SomeClass 与那家工厂。您可以将静态初始化器与 Class.forName

      public class SomeClass {
          static {
            SomeFactory.registerSomeImplementation(SomeClass.class)
          }
      }
      
      Class.forName("somePackage.SomeClass") // Alternative 1 
      SomeClass.class.getName();             // Alternative 2
      

      图书馆 项目

    3. SomeLib 然后可以使用工厂为创建实例 .

      SomeInterface si = SomeFactory.createSomeObject();
      
        2
  •  1
  •   clamp    17 年前

    Class.forName("com.bla.yourclass").newInstance();
    
        3
  •  0
  •   Andreas Dolk    17 年前

    然后,您不需要反射来搜索类路径中的实现者,只需要调用来创建实例。