因此,正如标题所述,我有SimplifiedBill
,仅具有日期和finalPayment,也有Bill
,其具有与SimplifiedBill
相同的属性,但还具有所有其他详细信息(税金,用户数据,服务,等等。)。
一个解决方案可能是Bill
从SimplifiedBill
继承,但是我认为这在概念上是不正确的,因为SimplifiedBill
是您从Bill
中脱颖而出的,所以Bill
不在“下面” SimplifiedBill
,它不继承任何内容。
关于如何在此处实现类设计的任何想法?
编辑:
该过程如下。
我有一个SimplifiedBill
列表,该列表从背面获取,当我单击其中的一个列表时,我请求并从api中获取Bill
并进入详细视图。
如果您想知道,我使用的是Angular,我有一个ListComponent
(或视图),其中有我的SimpleBill
对象,当我单击其中的一个时,我便转到了DetailComponent
可以看到特定的Bill
。当我从一个视图转到另一个视图时,我无法传输对象SimpleBill
,而只能传输其ID(或其他字段)。
最佳答案
不,我同意,从SimplifiedBill继承在概念上是不正确的。
总的来说,我建议谨慎使用继承。我很少看到它使用正确。
相反,我建议采用一种组合方法:如果Bill包含SimplifiedBill,那么我认为拥有一个具有详细信息属性的数据结构Bill是有意义的:
let bill = {
details: {...},
simplifiedBill: {...}
}
请注意,这里我使用了一个简单的对象(与使用javascript一样,可能也值得考虑),但它同样适用于基于类的方法。
不过,您可能想为简化的帐单取一个不同的名称。也许像“摘要”之类的东西。
但是总的来说,您想到的继承概念可能不太适合这里,这是很好的。