概念
Mixins 是一种软件设计模式,在 JavaScript 中用于实现代码复用和组合功能。它允许将多个不同的行为或特性组合到一个类中,而无需使用传统的类继承。通过 Mixins,可以从多个源获取功能,使代码更加灵活和可维护。
与传统面向对象继承的区别
- 传统继承
- 通常是单一的层次结构,一个类只能从一个父类继承。
- 继承关系较为严格,可能导致复杂的类层次结构和较高的耦合度。
- Mixins
- 可以从多个不同的源组合功能,更加灵活。
- 不是基于严格的父子关系,而是通过合并代码来实现功能共享。
示例
定义两个混入类:
// Disposable Mixin
class Disposable {
isDisposed: boolean = false;
dispose() {
this.isDisposed = true;
}
}
// Activatable Mixin
class Activatable {
isActive: boolean = false;
activate() {
this.isActive