2016-10-10 51 views
1

我想弄清楚如何正確地擴展幾個類沒有重複的代碼。 我有以下類:擴展類沒有多重繼承或重複的代碼

  • 基地(方法A,方法B)
  • 發票:基礎(方法C)
  • 配送費:基地(方法d)

我不得不調整一些功能而不修改它們。問題是我需要調整的一些方法在基類中。

如果我擴展基類,我將需要複製的方法C和D.如果我延長每個final類的,然後我需要複製的更改方法A,B。

我如何正確地做到這一點沒有多重繼承(PHP,不可能)或重複的代碼?

+1

路太寬的問題 - 有太多的方法可以做到這一點。特徵(多重繼承)是一個解決方案,將基類分解爲需要依賴關係,並讓兩個最終類提供這些依賴關係的不同實現可能是更好的選擇。沒有辦法可以肯定地說有這樣的抽象信息 – Steve

+0

我不能改變這些類,我只能擴展它們。他們是第三方模塊的一部分。 – Domeglic

+0

那麼特徵可能是最好的選擇,但也沒有辦法真正回答這個問題,所以它可能會因爲太寬泛而關閉 – Steve

回答