设计模式

SOLID设计原则

  1. SRP 单一职责
  2. OCP 开闭原则
  3. LSP 里式替换原则
  4. ISP 接口隔离原则
  5. DIP 依赖倒置原则

分类

创建型

单例模式、工厂模式、建造者模式、原型模式

结构型

代理模式、桥接模式、装饰者模式、适配器模式、门面模式、组合模式、享元模式

行为型

观察者模式、模板模式、策略模式、职责链模式、迭代器模式、状态模式、访问者模式、备忘录模式、命令模式、解释器模式、中介模式

依赖反转 (DIP)

核心目的:减少模块间耦合,提高可维护性和扩展性。

关键点:

  • 模块之间不应存在直接依赖,都应依赖抽象类或接口
  • 抽象不应依赖细节,细节应依赖抽象
// 通过接口解耦
abstract class IUserRepository {
  getUser(id: number): User;
}
class UserService {
  constructor(private repo: IUserRepository) {}
  getUserInfo(id: number) {
    return this.repo.getUser(id);
  }
}

前端与设计模式

JavaScript不是纯粹的OOP语言,函数是第一等公民。原生OOP设计模式在JS中实现有一定困难。

面向对象

封装(信息隐藏、数据访问保护)、抽象、继承、多态

关联