2012-06-21 30 views
4

我有兩個枚舉,有兩個包。我可以有1000個枚舉,1000個包,因爲我正在研究一種「單元」結構,每個單元都必須有它自己的枚舉。幾個枚舉如何擴展一個包含用於Java中這些枚舉的方法的類?

我不想讓每個常量在同一個枚舉中最大化內聚。

的問題是,每一個枚舉基本相同,爲常數節選(適合每個單元)

所以,我需要重複大量的代碼,我不希望這樣做(我的枚舉實現監聽器,方法邏輯例如是在每個枚舉中複製/粘貼)。

我查看了互聯網上的枚舉擴展模式。我找到了可擴展的枚舉模式。

這不完全是我所需要的。

我試圖找到一種解決方案,以保持我的常量在不同的包中,以不同的單位,但我想要一種抽象類,在我的枚舉可以擴展的包層次結構的頂部。這樣,我只能寫一次方法邏輯。

我知道枚舉不能擴展類,它們只能實現接口。

這是一個沒有工作的UML草圖,我想這樣做:

enter image description here

我怎麼能這樣做?有沒有一種模式?

幾個枚舉如何擴展一個包含用於這些枚舉的方法的類? (可重複使用)

編輯提示:

我需要使用.values()從枚舉,因爲我需要的常量進行迭代。

回答

1

瞭解它,你不能擴展類 - 或枚舉 - 用枚舉。但是你可以實現一個接口並將接口方法的實現委派給一個輔助類。

+0

是的,一種Utility類..?我其實在想這件事 –