面向JavaScript的SOLID設計原則
Derick Bailey是一位專注於JavaScript的作者和開發者,他最近在CodeMash上發表的演講中指出:很多開發者都使用過面嚮物件語言,也有很多開發者使用過JavaScript,但很少有人把物件導向原則和JavaScript放在一起使用過。在物件導向程式設計中,我們會把這些基礎和原則看做工作的根基,但是從基於類的靜態語言轉向基於鬆散的型別而非類的語言時,往往發現同樣的原則很難應用。
Derick宣稱,為幫助開發者編寫良好且穩定的JavaScript程式碼,有很多很好的原則、實踐和模式可供使用,一個例子就是Robert C. Martin於本世紀初總結出的SOLID原則。
Derick把SOLID原則描述為可以很好地配合的五個獨立模式,他還使用程式碼示例依次介紹了所有這些模式,同時看了一些JavaScript特有的風格,這些風格使得在JavaScript中應用SOLID原則與在像Java和C#這樣的語言中應用有點不同。
Derick對這五種原則的定義是:
- 單一職責原則。當需要做出修改時,原因只能有一個。這有助於幫助開發者理解所構建事物的上下文和職責,並理解何時需要修改。
- 開放-封閉原則。行為的改變應該可以在不改變現有程式碼的條件下進行,例如,使用擴充套件點和建立可以插入的程式碼。
- 里氏替換原則。派生的物件或型別必需能夠替換其基類。在Derick看來,這是開放-封閉原則的一個更為專注的版本。
- 介面隔離原則。不應該強迫客戶依賴沒有使用的介面。有個問題是,JS中沒有顯式的介面,不過我們有些方法繞過。
- 依賴倒轉原則。考慮兩個概念,抽象(Abstraction)和所有權(Ownership)。前者指的是我們應該依賴抽象,而不是依賴具體實現;後者指的是低層實現應該依賴高層概念(譯者注:關於Ownership,Derick在演講中提到了“細節依賴策略,而策略不依賴細節”)。
在演講最後,Derick指出:如果系統中有規模龐大、整整一片的程式碼塊,SOLID可以幫你把它們拆成單個的部分。儘管不會降低複雜性,但是會幫你建立抽象,並將細節組織為我們可以理解的更大的概念。
演講相關的Slides和JavaScript程式碼下載。
相關文章
- SOLID 設計原則Solid
- SOLID架構設計原則Solid架構
- SOLID 原則:軟體設計的基本原則Solid
- SOLID 五大設計原則Solid
- 六大設計原則(SOLID)Solid
- Java的SOLID程式設計原則 - Filippo BulettoJavaSolid程式設計
- SOLID原則Solid
- SOLID 原則Solid
- 物件導向設計的六大原則(SOLID原則)-——里氏替換原則物件Solid
- C#實踐設計模式原則SOLIDC#設計模式Solid
- SOLID:物件導向設計的前五項原則Solid物件
- 架構設計的五大原則-SOLID架構Solid
- JavaScript 的 API 設計原則JavaScriptAPI
- JavaScript 中的 SOLID 原則(四):“I”代表什麼JavaScriptSolid
- JavaScript 中的 SOLID 原則(一):“S”代表什麼JavaScriptSolid
- JavaScript API 設計原則JavaScriptAPI
- 實踐GoF的23種設計模式:SOLID原則(上)Go設計模式Solid
- 【架構設計】你真的理解軟體設計中的SOLID原則嗎?架構Solid
- Javascript 設計模式之設計原則JavaScript設計模式
- JavaScript設計模式(一)設計原則JavaScript設計模式
- 講講solid原則Solid
- SOLID原則筆記Solid筆記
- 鮑勃大叔:SOLID原則適合函式程式設計嗎?Solid函式程式設計
- JavaScript API 設計原則詳解JavaScriptAPI
- SOLID原則的堅實指南| BaeldungSolid
- 物件導向設計原則和建立SOLID應用的5個方法物件Solid
- 比SOLID更重要的與DDD設計相關的GRASP原則 - Kamil GrzybekSolid
- 不止於物件導向的SOLID原則物件Solid
- 物件導向設計原則,以及包的設計原則物件
- 設計模式的設計原則設計模式
- SOLID:物件導向設計的五個基本原則Solid物件
- 設計原則
- Google的設計原則Go
- 每位開發者都應該知道SOLID原則Solid
- 設計原則:開閉原則(OCP)
- 一文get到SOLID原則的重點Solid
- 設計原則 設計模式設計模式
- 設計模式 - 設計原則設計模式