java – 如何允许用户选择要初始化的类
发布时间:2020-12-15 04:36:52 所属栏目:Java 来源:网络整理
导读:我有一个抽象类Foo,它包含一个函数a(Object o). 根据您使用的Foo实现,(Object o)的实现略有不同. 我希望程序的用户能够确定使用Foo的实现(例如,aFoo,bFoo,cFoo等),但我想减少对条件逻辑的使用,以便我可以添加到我的将来计划更安全. 我目前有一个Enum eBar,其
我有一个抽象类Foo,它包含一个函数a(Object o).
根据您使用的Foo实现,(Object o)的实现略有不同. 我希望程序的用户能够确定使用Foo的实现(例如,aFoo,bFoo,cFoo等),但我想减少对条件逻辑的使用,以便我可以添加到我的将来计划更安全. 我目前有一个Enum eBar,其中包含用户可以选择的所有Foo实现的名称,但我无法确定如何使用它来初始化该类. 解决方法
在每个枚举实例中存储要使用的Foo实例,或者添加一个创建Foo的方法:
public enum FooType { A { @Override public Foo createFoo() { return new AFoo(); } },B { @Override public Foo createFoo() { return new BFoo(); } } public abstract Foo createFoo(); } 然后,一旦用户选择了类型,您需要做的就是 selectedFooType.createFoo().a(object); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |