因此,正如标题所述,我有SimplifiedBill,仅具有日期和finalPayment,也有Bill,其具有与SimplifiedBill相同的属性,但还具有所有其他详细信息(税金,用户数据,服务,等等。)。

一个解决方案可能是BillSimplifiedBill继承,但是我认为这在概念上是不正确的,因为SimplifiedBill是您从Bill中脱颖而出的,所以Bill不在“下面” SimplifiedBill,它不继承任何内容。

关于如何在此处实现类设计的任何想法?

编辑:
该过程如下。
我有一个SimplifiedBill列表,该列表从背面获取,当我单击其中的一个列表时,我请求并从api中获取Bill并进入详细视图。

如果您想知道,我使用的是Angular,我有一个ListComponent(或视图),其中有我的SimpleBill对象,当我单击其中的一个时,我便转到了DetailComponent可以看到特定的Bill。当我从一个视图转到另一个视图时,我无法传输对象SimpleBill,而只能传输其ID(或其他字段)。

最佳答案

不,我同意,从SimplifiedBill继承在概念上是不正确的。
总的来说,我建议谨慎使用继承。我很少看到它使用正确。

相反,我建议采用一种组合方法:如果Bill包含SimplifiedBill,那么我认为拥有一个具有详细信息属性的数据结构Bill是有意义的:

let bill = {
  details: {...},
  simplifiedBill: {...}
}


请注意,这里我使用了一个简单的对象(与使用javascript一样,可能也值得考虑),但它同样适用于基于类的方法。
不过,您可能想为简化的帐单取一个不同的名称。也许像“摘要”之类的东西。

但是总的来说,您想到的继承概念可能不太适合这里,这是很好的。

10-01 01:56