0
我正在尋找實現接口實現子集之間通用代碼的最佳方式。具體來說,假設我們有一個由A,B和C實現的接口P.同樣,假設A和B具有某些共同的功能(通用代碼),B和C具有一定的通用功能,並且類似地,A和C具有通用功能在執行界面。據我所知,:如何最佳地實現繼承類的子集之間的通用功能
- 我們可以使中間類對於每一對,對包含有公共的功能,然後從中間的類,例如,中間AB類實現用於公共代碼A和B和BC之間的共同代碼派生的類在B和C之間,然後從AB和BC中導出B.
- 複製的類的代碼在每對
1應該theortically是最佳的解決方案,但是,它practially可以創建一個巨大的混亂,因爲其實我也只是有3類實現接口,而是他們的人數很多。而且,常見的功能不僅在對之間而且在類的大部分子集中,並且存在許多這樣的子集。因此,我們需要有大量的中間類來實現不同子集之間的通用功能。這使得通過中間類來實現變得很難/效率低下,因爲我們需要大量的這些中間類。
我相信2也不是最好的解決方案,因爲它需要代碼複製,這會導致代碼維護的問題。
編輯:我試圖簡化問題,以給出清晰的圖片迴應評論。
繼承應該用於接口/替換。 'P'是否描述了一個由子類實現的接口? –
4-使用一個接口,你可以有一個以此接口爲參數的函數來做通用代碼 –
除非你要看任意的B和Cs做X,任意的A和B做Y,而A, B和C的做Z,比你可能寧願構成比繼承。 – IdeaHat