一、枚舉的可伸縮性最後證實都不是什麼好點子設計
- 擴展類型的元素是基本類型實例,基本類型的實例卻不是擴展類型的元素,很混亂
- 目前尚未很好的方法來枚舉基本類型的全部元素,及其擴展
- 可伸縮性會致使設計和實現變得複雜起來
二、可伸縮枚舉類型舉例,至少有一種具備說服力的例子(操做碼,30條)blog
- 讓API的用戶提供本身的操做,有效擴展API 提供的操做集
- <T extend Enum<T> & Operation> 加強枚舉
- <T extends Enum<T> & OperationInter> 這個複雜的泛型不只保證Class既是枚舉類型並且也是OperationInter的子類
- 或者使用有限制的通配符類型,以下
- 這樣更加靈活,容許調用者將多個實現類型的操做合併在一塊兒
- 除非須要靈活實現多個實現類型,最好使用有限制的通配符類型
三、用接口實現可伸縮枚舉有個小小的不足繼承
- 沒法實現從一個枚舉類型繼承到另外一個枚舉類型
- 能夠將其封裝在一個輔助類或者靜態輔助方法中,避免代碼的複製工做
四、總結接口
- 雖然沒法編寫可擴展枚舉類型,卻能夠經過編寫接口以及實現該接口的基礎枚舉類型進行模擬