说我有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