Java設計問題。專門的方法與使用Enum作爲附加參數
我有一個對象需要維護說4種類型的小部件的集合:活動,無效,無效,潛力。對於這些類型的,我有一系列的方法作用於每個:都說添加,獲取,刪除等
我的問題是,這將是最好有這樣一系列的方法:
addInactive(Widget)
getInactive()
removeInactive(Widget)
addActive(Widget)
getInactive()
removeInactive(Widget)
addInvalid(Widget)
等等
OR
我應該有這個類,而不是內部的枚舉:WidgetStatus然後消費者將通過在此枚舉時,他們需要執行的操作。這將導致只有3公有方法代替:
add(Widget, WidgetStatus)
get(WidgetStatus)
remove(Widget, WidgetStatus)
一方面,我喜歡先用專門的方法,因爲它不僅保留下來的必要參數的數量,但它也迫使消費者的手顯式調用他們需要的方法。然而,後一種選擇似乎使API簡單化,並且使未來更容易添加其他狀態類型。
想法?
我採用這種方法。我認爲它包含了手頭的要求,並使API更簡單。感謝大家的意見。 – sma 2012-01-16 18:48:57