有人问我是否可以在不使用 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();