在下面的例子中,Enums做了一個類可以處理的數量。使用處理邏輯枚舉實現是否很好?
enum TriggerHandlerType {
DASHBOARD {
@Override
TriggerHandler create() {
return new DashboardTriggerHandler();
}
},
COMPONENT_HANDLER {
//...
};
abstract TriggerHandler create();
}
private static TriggerContext getTriggerContext(TriggerHandlerType triggerHandlerType) throws TriggerHandlerException {
return new TriggerContext(triggerHandlerType.create());
}
枚舉通常用於其中在這種情況下,他們將基於處理邏輯返回變化值常數的類型安全儲存。從某種程度上說,它似乎是一種綜合性的技術,因爲這裏的枚舉是通過狀態確定本身來減輕類的處理。此外,由於返回值是有限值的一個子集,因此讓枚舉本身處理處理似乎是有意義的。
我在這裏看到的問題在那裏,這將打破開閉原則SOLID和階級將有更多的時枚舉被添加的代碼行增量,任何人都可以分享您對此怎麼看?
這取決於上下文,在這種情況下,這是一個可怕的想法。 –
@DavidPérezCabrera感謝您的評論,我在Github看到了這段代碼,並認爲它會真正緩解實現,而不是具有不同的具體類或切換案例或hashmaps,爲什麼你認爲它很糟糕!任何特定的原因 –
@RealSkeptic我同意!,我從github那裏拿走了它,並且創建了一個只是看一看希望現在有意義 –