java 自动注册_java – 自动工厂注册
我只是在学习
java,我遇到了一些问题.
这里我们有简单的工厂模式:
public class SomeFactory {
...
public static void registerProduct(String name, Class extends IProduct > f)
}
public SomeProduct implements IProduct {
static {
SomeFactory.register("some product", SomeProduct.class);
}
...
}
所有产品都应在工厂注册.
但在使用此代码之前,应加载所有Products类.
我可以将Class.forName()放在某处,例如在main函数中.
但我想避免这种手动类加载.我想添加新的IProduct
实现,而不更新其他部分(如SomeFactory或Main方法等).
但我想知道,是否有可能自动加载一些类(例如标有注释)?
P.S我想注意,在运行时不会添加其他类,所有IProduct实现在编译之前都是已知的.
UPD#1
谢谢你的回答!
但是有可能使用IProduct实例生成自动生成的属性文件吗?
我的意思是有可能制作一些生成属性文件或加载器代码的构建时脚本(例如maven)吗?有这样的解决方案或框架吗?
UPD#2
我完成了使用Reflections library提供运行时信息,通过在启动时扫描类路径.
我只是在学习 java,我遇到了一些问题. 这里我们有简单的工厂模式: public class SomeFactory { ... public static void registerProduct(String name, Class extends IProduct > f) } public SomeProduct implements IProduct { static { SomeFactory.register("some product", SomeProduct.class); } ... } 所有产品都应在工厂注册. 但在使用此代码之前,应加载所有Products类. 我可以将Class.forName()放在某处,例如在main函数中. 但我想避免这种手动类加载.我想添加新的IProduct 实现,而不更新其他部分(如SomeFactory或Main方法等). 但我想知道,是否有可能自动加载一些类(例如标有注释)? P.S我想注意,在运行时不会添加其他类,所有IProduct实现在编译之前都是已知的. UPD#1 谢谢你的回答! 但是有可能使用IProduct实例生成自动生成的属性文件吗? 我的意思是有可能制作一些生成属性文件或加载器代码的构建时脚本(例如maven)吗?有这样的解决方案或框架吗? UPD#2 我完成了使用Reflections library提供运行时信息,通过在启动时扫描类路径.