說我有3類是這樣的:構建超類
|Abstract Class: Building|
|int windows; |
|int rooms; |
|
|
|Abstract Class: House extends Building|
|int familyMembers; |
|
|Class: MobileHome extends House|
|int wheels; |
現在我試圖找出構建我的計劃的最好方式,因爲窗戶和房間明顯的數量將取決於House
子類但是所有的建築物都有窗戶(至少爲了這個程序他們會這樣做)。所以這就是爲什麼他們在建築類,但這些窗口的數量將取決於最低的子類,因爲如果我做另一類名爲豪宅延伸House
明顯一個豪宅將有更多的窗口比移動房屋。最後,我打算讓我的建築類和其他抽象類非常詳細,最後有大約一百個不同的屬性(我列出的字段只是示例),所以我想知道是否有人有任何想法一個乾淨的方式來構造一個MobileHome
對象可能只是向構造函數調用傳遞一個對象,而不是構造函數需要數百個參數。
我在網上找到的所有例子都比較簡單,通常只擴展一個類,只使用幾個字段,因此使構造函數相對容易,所以我只是尋找一個優雅的大型解決方案。
附註:如果任何人有更好的方式來構建這些類的任何想法,也許通過分解更多我會很感激任何意見。
我不確定你究竟是在做什麼,或者你的'MobileHome'類實際需要看起來像什麼,但聽起來你可能想要使用默認值。說,根據你的要求,抽象的「建築物」至少有一扇門和一個房間。所以你可以初始化爲'1'。另外,如果需要,您可以提供setter方法來更改這些方法。如果你有一個'TwoRoomHouse',你可以默認將它們初始化爲'2'。 – domsson
哦,我忘了:如果你真的想到一個需要數百個字段(成員變量)的類,並因此在其構造函數中有數百個參數,那麼在該類的設計中看起來根本是錯誤的。 – domsson
你有很多參數的例子嗎?我認爲,如果將來有一些複雜性,您真正需要的是更加靈活:https://codingdelight.com/2014/01/16/favor-composition-over-inheritance-part-1/。 – Dherik