TypeScript中的面向对象与运行时理解
1. TypeScript中的混入(Mixins)
混入在TypeScript中看起来有点像多重继承,但TypeScript不允许多重继承。混入的关键在于使用 implements 关键字,而非 extends 关键字,这使它们更像接口而非超类。
1.1 使用混入的时机
- 在使用混入时,要特别注意调用
applyMixins函数时传入正确的类名列表,因为添加实现到增强类的机制不会被检查,所以需要充分测试以避免意外。 - 决定使用混入还是经典继承通常取决于类之间的关系。在继承和委托之间做选择时,常用“is a”和“has a”测试:
- “is a”关系适用于继承,例如“滚动底盘是底盘”。
- “has a”关系适用于委托,例如“汽车有底盘”。
- 混入最好用“can do”关系描述,例如“演员能表演”。可以通过为混入命名,如
Acting或Acts,使类的代码读起来像句子,如“Actor implements Acting”。
- 适合使用混入的场景包括:
- 组合具有可选功能的类,混入可作为选项。
- 在多个类中重用相同的行为。
- 根据相似的功能列表创建多种变体。
超级会员免费看
订阅专栏 解锁全文
1041

被折叠的 条评论
为什么被折叠?



