gpt4 book ai didi

java - 使用属性文件中的类名作为出厂返回的默认值

转载 作者:行者123 更新时间:2023-11-30 09:03:52 24 4
gpt4 key购买 nike

我不熟悉属性文件中的类名实例化。以前从来没有这样做过:)所以,我有一个属性文件,可以在其中定义一个用作框架默认值的类。对于这个类,应该通过工厂创建很多实例。什么是最好的工厂实现?我通过对工厂方法和静态工厂方法模式的 Google 研究得出结论。

此时,我确实有:

public interface Handler { ... }

public class ConcreteHandler1 implements Handler { ... }

public class ConcreteHandler2 implements Handler { ... }

我需要能够从属性文件中指定:

default.handler=com.handlers.ConcreteHandler1

新指定的默认处理程序将经常被实例化以完成其工作。到目前为止遵循这个模板:

public class HandlerFactory {
private static Handler defaultHandler = <way to instantiate default handler from properties>

public Handler getDefaultHandler() {
return HandlerFactory.defaultHandler;
}

public void setDefaultHandler(Handler default) {
HandlerFactory.defaultHandler = default;
}
}

还有 main():

public static void main(String[] args) {
Handler defHandler = HandlerFactory.getDefaultHandler();
// Do something with defHandler
// ...
}

我如何以良好且设计良好的方式实现它?

最佳答案

如果这是一个简单的工厂并且可以通过默认构造函数简单地创建对象,我认为 Class.forName(clazzName).newInstance() 足以处理它。

如果您有多个类和复杂的参数,并且可能在构造它们时进行排序,那么我会推荐一些 IoC 工具,例如 Spring。

关于java - 使用属性文件中的类名作为出厂返回的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25497445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com