【发布时间】:2019-03-11 15:04:14
【问题描述】:
假设我有一个抽象类 A 和三个从它继承的具体类 A1、A2 和 A3。还有一个不同的层次结构树,有一个抽象类 B 和三个具体类 B1、B2 和 B3。每个具体类 A 需要分别保存 B 类的对象列表。这意味着,A1 拥有 B1 的列表。什么是更好的解决方案:
-
使 A 成为泛型类,并使其包含 T 的泛型列表,该列表扩展 B,例如:
abstract class A<T extends B> { protected arr: Array<T extends B> }这样,我应该将每个 A 类声明如下:
class A1 extends A<B1> -
使用组合如下:
class A1 extends A { private arr: Array<B1> }
【问题讨论】:
标签: typescript generics composition