我有一組類擴展了一個抽象類。這些類的一個子集需要一個方法的相同實現,另一個類的子集需要方法的另一個實現,第三個子集需要另一個。總共有十個子類,但其中一種方法只有三種可能的實現方式。 (這些類實現的許多其他方法沒有任何共同之處。)如何在沒有多重繼承的情況下做到這一點
我試圖找出完成此操作的最佳方法。我認爲我在C++中所做的是多重繼承:創建三個只實現此方法的類,然後讓子類從這三個類中相應的一個繼承。
在Java中這樣做有最佳做法嗎?
我正在考慮三個抽象類的介入層,介於主抽象類和子類之間。這三者中的每一個都從主抽象類繼承,並實現了所討論的方法。然後這些孩子從這三位繼承。但是,如果另一種方法伴隨着類似的「分組」行爲,並且不符合三個「中間層」類,我不喜歡這種情況?那會變醜
這是否有任何意義?我在趕時間寫...
編輯:因此,24小時後提出我的問題,我收到了大約六打模式進行調查。我不確定他們是否都是官方設計模式名稱。但是我會研究每一個,然後回報(並選擇一個正確的答案)。到目前爲止提出的圖紋:
* Delegation
* Bridge
* Strategy
* Composition
* Decorator (if I was choosing on name alone, I choose this one)
我還需要補充一點的是正在實施的需要方法來訪問幾乎所有類的私有成員。所以這在我的選擇中會佔很大的比例。
感謝您的鏈接,我將閱讀並回復我的問題。你還在聽嗎?我是新來的。發佈到回答的評論是否會導致某種警報發送給回覆者? – 2012-01-03 18:43:08
對答案的評論會觸發一些小小的通知,但如果您有後續問題,則更應該以網站的精神將其作爲新的發佈(同時檢查重複內容),而不是在先前的答案上請求後續答案。像這樣的元討論具有[自己的子站點](http://meta.stackoverflow.com/),並且在這裏被壓垮了。 – Barend 2012-01-03 21:32:21