gpt4 book ai didi

java - 如何允许用户选择要初始化的类

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:22:25 25 4
gpt4 key购买 nike

我有一个抽象类Foo,它包含一个函数a(Object o)
根据您使用的 Foo 实现,a(Object o) 的实现略有不同。

我希望程序的用户能够确定使用的是什么Foo实现(例如,aFoobFoocFoo 等),但我想减少对条件逻辑的使用,以便将来可以更安全地添加到我的程序中。

我目前有一个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);

关于java - 如何允许用户选择要初始化的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40809720/

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