我有几个辅助类(? extends HelperBase
),它们只有公共静态方法。我希望有类似工厂的东西(有单件支持),但由于不需要实例,我不确定哪种方式最好。
最后,我希望有类似的内容:
enum HELPER_TYPE {
Type_A
}
abstract class HelperBase {
abstract void do();
static HelperBase getHelper(HELPER_TYPE type) {
// ...
}
}
class Helper1 extends HelperBase {
static void doImpl() {
// ... impl here
}
void do() {
doImpl();
}
}
// ... and then:
HelperBase helper = HelperBase.getHelper(HELPER_TYPE.Type_A);
helper.do();
有更好的方法吗?任何建议都将不胜感激。
答案 0 :(得分:1)
enum HELPER_TYPE implements IHelper{
Type_A{
@Override
public void doSomething(){
}
},
Type_B{
@Override
public void doSomething(){
}
}
}
interface IHelper{
public void doSomething();
}
如何使用所需方法创建接口并让enum
实现该接口?
现在,在实现IHelper
接口的所有帮助程序中都存在多态行为。
因此,您可以将其称为HELPER_TYPE.Type_A.doSomething()