S O L I D 五大设计原则

  • S 单一职责原则
  • O 开放封闭原则
  • L 李氏置换原则
  • I 接口隔离原则
  • D 依赖倒置原则

    单一职责原则

  • 每个程序都做好一件事

  • 功能太多了就要拆分
  • 每个部分保持相互独立

    开放封闭原则

  • 对扩展开放

  • 对修改封闭
  • 需求方式变化时,通过扩展来解决,而非改动

    李氏置换原则

  • 子类能覆盖父类

  • 父类出现的地方,子类也能出现
  • (前端应用较少)

    接口隔离原则

  • 保持接口的单一独立

  • 避免出现 “胖接口”
  • (和单一职责原则类似)

    依赖倒置原则

  • 面向接口编程

  • 而非面向实例
    1. function fn(p: Student) {} // 依赖具体的类
    2. function fn(p: IPerson) {} // 依赖接口

    🌰

    ```javascript function loadImg(src: string) { const promise = new Promise((resolve, reject) => { const img = document.createElement(‘img’); img.onload = () => {
    1. resolve(img)
    } img.onerror = () => {
    reject('图片加载失败')
    
    } img.src = src; }) return promise; }

const src = ‘xxx.png’; const res = loadImg(src); res.then(img => { console.log(img.width) return img }).then(img => { console.log(img.height) }).catch(err => console.log(err))

// 单一职责原则,每一个then里面只干一件事情 // 开放封闭原则,如果有新的需求,就继续扩展新的then去处理 ```