1. 程式人生 > >SOLID 五大設計原則

SOLID 五大設計原則

SOLID 五大設計原則

1. SRP 單一職責原則(The Single Responsibility Principle)

  • 一個程式只做好一件事
  • 如果功能過於複雜就開分開,每個部分保持獨立

2. OCP 開放封閉原則(The Open Closed Principle)

  • 對拓展開放,對修改封閉
  • 增加需求時,拓展新程式碼,而非修改已有程式碼
  • 軟體設計的終極目標

3. LSP 里氏置換原則(The Liskov Substitution Principle)

  • 子類能覆蓋父類
  • 父類能出現的地方子類就能出現
  • JS 中使用較少(弱型別&繼承使用較少)

4. ISP 介面獨立原則(The Interface Segregation Principle)

  • 保持介面的單一獨立,避免出現“胖介面”
  • JS 中沒有介面(typescript 除外), 使用較少
  • 類似於單一職責原則,這裡更關注介面

5. DIP 依賴倒置原則(The Dependency Inversion Principle)

  • 保持介面的單一獨立,避免出現“胖介面”
  • JS 中沒有介面(typescript 除外), 使用較少
  • 類似於單一職責原則,這裡更關注介面

promise 說明 SO

  • S:每個then中的邏輯只做一件事

  • O:如果要新增需求,擴充套件then

    function loadImg(src) {
      let promise = new Promise(function(resolve, reject) {
        let img = document.createElement('img')
        img.onload = function() {
          resolve(img)
        }
        img.onerror = function() {
          reject('圖片載入失敗'
    ) } img.src = src }) return promise } let src = '//img.mukewang.com/5bc45ce20001976409360316.jpg' let result = loadImg(src) result .then(function(img) { alert(`width:${img.width}`) }) .then(function(img) { alert(`height:${img.height}`) }) .catch(function(ex) { alert(ex) })