首页 > 解决方案 > 如何设计类 Bill 和类 SimplifiedBill 之间的关系?

问题描述

正如标题所提到的,我有SimplifiedBill,它只有datefinalPayment,我也有Bill,它具有与 相同的属性SimplifiedBill,还有所有其他详细信息(taxuser dataservices等)。

一个解决方案可能是Bill从继承SimplifiedBill,但我认为这在概念上是不正确的,因为SimplifiedBill是你从中得到的东西Bill,所以Bill不是“下面”的东西SimplifiedBill,它不会从它继承任何东西。

关于如何在这里实现类设计的任何想法?

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

如果您想知道,我正在使用 Angular,并且我有一个ListComponent(或视图)我的SimpleBill对象,当我单击其中一个时,我会转到DetailComponent,在那里我可以看到特定Bill的 . 当我从一个视图转到另一个视图时,我无法传输 object SimpleBill,而只能传输它的 id (或其他一些字段)。

标签: javascripttypescriptinheritanceentity-relationshipclass-design

解决方案


不,我同意,从 SimplifiedBill 继承在概念上是不正确的。一般来说,我认为谨慎使用继承是可取的。我很少看到它被正确使用。

相反,我会推荐一种组合方法:如果 Bill 包含 SimplifiedBill,那么我认为拥有一个具有细节属性的数据结构 Bill 是有意义的:

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

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

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


推荐阅读