没有If-else构造的工厂模式

时间:2013-01-31 08:26:23

标签: java java-ee design-patterns

有人问我是否可以在java中创建工厂模式而不使用If-else构造。所以我带来以下内容。如果这似乎是使用工厂的一个很好的例子,请提供您的意见。

public enum EnumButtonFactory {

RADIO(RadioButton.class),
SUBMIT(SubmitButton.class),
NORMAL(NormalButton.class);

private Class<? extends Button> button;

EnumButtonFactory(Class<? extends Button> b) {
    this.button = b;
}

public Button get() {
    try {
        return button.newInstance();
    } catch (InstantiationException | IllegalAccessException e) {
        e.printStackTrace();
    }
    return null;
 }
}

并且用法很简单

    Button button = null;   
    button = EnumButtonFactory.RADIO.get();
    button.click();

0 个答案:

没有答案