[英]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
對象可能只向構造函數調用傳遞一個對象,而不是使構造函數接受數百個參數。
我在網上找到的所有示例都相對簡單,通常只擴展一個類並僅使用幾個字段,因此使構造函數相對容易,因此,我只是在尋找一種優雅的大規模解決方案。
旁注:如果有人對構建此類的更好方法有任何想法,也許可以通過將它們分解開來,我將不勝感激。
超類的想法是使用所有子類都通用的字段和方法來創建最通用的類。 因此,請在父類中盡可能多地放入“數百”個參數。
如果您有這么多參數,那么也可以將它們分組到類中,然后將這些類的對象作為您的成員,那么可能值得一試。 例如,在移動房屋中,您無需將每個細節都歸類到字段中,而是希望將這些細節分組在一起。 基本上,如果一類中有數百個字段,那么您的設計就取決於您的設計,那么所有這些字段都必須有公共的子組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.