使用静态方法的辅助类工厂?

时间:2014-01-21 11:41:00

标签: java oop architecture factory-pattern code-design

我有几个辅助类(? 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();

有更好的方法吗?任何建议都将不胜感激。

1 个答案:

答案 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()