Class 从类继承或声明字段继承的选择
假设我有一个类产品{string name;double price;…} 因此,如果我想实现季节性或折扣产品,我可以添加声明isPromoted/isSeasonal,或者我可以创建一个新的类promotedProduct:product{…},季节性product:product{}等等Class 从类继承或声明字段继承的选择,class,oop,inheritance,Class,Oop,Inheritance,假设我有一个类产品{string name;double price;…} 因此,如果我想实现季节性或折扣产品,我可以添加声明isPromoted/isSeasonal,或者我可以创建一个新的类promotedProduct:product{…},季节性product:product{}等等 有人告诉我,初学者倾向于滥用继承,以及它是多么邪恶。因此,我不确定我是否被认为在这种情况下滥用。或者它们都是错误的,使用界面更好等等。如果您想要您的第一个解决方案,产品是否只是在促销上-即-没有实际的促销细
有人告诉我,初学者倾向于滥用继承,以及它是多么邪恶。因此,我不确定我是否被认为在这种情况下滥用。或者它们都是错误的,使用界面更好等等。如果您想要您的第一个解决方案,产品是否只是在促销上-即-没有实际的促销细节(不同的价格、日期等)。否则,您将需要与存储此类详细信息的促销类的关系 希望这有帮助
注意:这是一个从未亲自使用过Java的通用编程答案。一个好的经验法则是区分哪些更改了,哪些没有更改 您不能在运行时更改类型,但可能希望能够轻松地升级/降级产品 一种选择是将状态直接存储在产品上作为字段(但如果它们累积、isLowInStock等,这将变得很糟糕) 可能更好的操作系统将产品视为一个实体,并通过以下方式将iPromoted/iSessional状态分开:
请不要使用double表示价格-请参阅或。季节性或折扣产品是否添加属性?他们有不同的行为吗?这就是继承的驱动力。我怀疑他们的行为没有真正的区别,他们所具有的属性也没有真正的区别 因此,我将折扣视为每个产品都具有的一个属性:任何产品都可能进行销售并获得折扣,因此我会有一个属性,指示当前的折扣百分比或金额(它可能默认为零,或者可以为空。季节性的也一样:这应该只是一个布尔标志吗?所以我还有一个问题