2

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

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();
4

0 回答 0