2012-02-21 60 views
1

我有一個很長的課,我不能分開,因爲我需要一個數據庫表(Google AppEngine + Objectify)中的所有字段。我已經儘可能使用嵌入式類。該類主要由getter和setter加上它們背後的邏輯組成。可以使用重複繼承來使類更小嗎?

爲了獲得功能塊,我決定使用重複繼承。現在,它看起來像這樣:

  • MyStoredModel extends
  • AbstractSettingsModel extends
  • AbstractHierarchyModel(涉及父/子對象)extends
  • AbstractInformationModel(持有標題,描述,...)extends
  • .. ...
  • AbstractModel

很容易看出每個班級正在做什麼,我也會說測試更容易。缺點是「繼承鏈」。

這被認爲是不好的行爲?什麼是更好的方法使課堂變得更小?

回答

3

我會考慮使用這些組合。所以該模型由設置,層次結構,信息對象組成。

這意味着您必須將所有setter/getters包含在頂層對象中,然後委託給每個組件類中的相應setter/getters,但至少您可以將所有處理他們分成不同的類,而沒有繼承層次的複雜性。這也意味着這些組件類現在可以自由地繼承他們喜歡的任何東西。

0

只要從邏輯的角度來看繼承是有意義的,我很肯定這就是它應該是的方式。

但是組合也可以是一個好主意。

相關問題