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