java 枚举工厂_在Java中使用枚举工厂,最佳做法?
Java允許我們在Enum上嵌入數據和行為.
我不想在Enum上直接實施一個工廠,因為我認為這不是它的作用.
但是我可以把類的引用放在枚舉上,并在外部工廠中引用對象.相對于傳統的工廠模式,你最好的實現是什么?哪種解決方案在哪種情況下更好?
現在,代碼.
在兩種解決方案中使用的函數來構造對象.如果需要,可以使用Map來實現fly-weight模式.
private Action getAction(Class extends Action> actionClazz) {
// logger + error handling
return actionClazz.newInstance();
}
1)有傳統工廠:
public enum ActionEnum {
LOAD_DATA,
LOAD_CONFIG;
}
public Action getAction(ActionEnum action) {
switch (action) {
case LOAD_CONFIG:
return getAction(ActionLoadConfig.class);
case LOAD_DATA:
return getAction(ActionLoadData.class);
}
}
2)具有Enum風格的工廠:
public enum ActionEnum {
LOAD_DATA(ActionLoadConfig.class),
LOAD_CONFIG(ActionLoadData.class);
public ActionEnum(Class extends Action> clazz){...}
public getClazz() {return this.clazz}
}
public Action getAction(ActionEnum action) {
return getAction(action.getClazz());
}
總結
以上是生活随笔為你收集整理的java 枚举工厂_在Java中使用枚举工厂,最佳做法?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为 MateBook D 16 202
- 下一篇: 哪种手机壳防摔?如何挑选手机壳?