簡體   English   中英

構建超類

[英]Structuring SuperClasses

說我有3個這樣的課程:

   |Abstract Class: Building|
   |int windows;            |
   |int rooms;              |
          |
          |
   |Abstract Class: House extends Building|
   |int familyMembers;                    |
          |
   |Class: MobileHome extends House|
   |int wheels;                    |

現在,我正在嘗試找出構建程序的最佳方法,因為顯然窗戶和房間的數量將取決於House的子類,但是所有建築物都有窗戶(至少出於此程序的目的)。 這就是為什么它們屬於建築類,但這些窗戶的數量將取決於最低的子類的原因,因為如果我創建另一個稱為Mansion的類來擴展House顯然,Mansion的窗戶將比移動房屋多。

最后,我計划將我的建築類和其他抽象類做得非常詳細,最后有大約一百種不同的屬性(我列出的字段僅是示例),所以我想知道是否有人對干凈的方法有任何想法構造一個MobileHome對象可能只向構造函數調用傳遞一個對象,而不是使構造函數接受數百個參數。

我在網上找到的所有示例都相對簡單,通常只擴展一個類並僅使用幾個字段,因此使構造函數相對容易,因此,我只是在尋找一種優雅的大規模解決方案。

旁注:如果有人對構建此類的更好方法有任何想法,也許可以通過將它們分解開來,我將不勝感激。

超類的想法是使用所有子類都通用的字段和方法來創建最通用的類​​。 因此,請在父類中盡可能多地放入“數百”個參數。

如果您有這么多參數,那么也可以將它們分組到類中,然后將這些類的對象作為您的成員,那么可能值得一試。 例如,在移動房屋中,您無需將每個細節都歸類到字段中,而是希望將這些細節分組在一起。 基本上,如果一類中有數百個字段,那么您的設計就取決於您的設計,那么所有這些字段都必須有公共的子組。

您可能要檢查一下gof書中的創新設計模式 特別是建設者聽起來像它可能是一個不錯的選擇。 這應該為您提供有關如何構造類的想法。 你可以找到一些Java中的例子在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM