SOLID 是物件導向程式設計和物件導向設計的五個基本原則的簡稱,分別為:
S = Single-responsibility principle (SRP) = 單一職責原則
O = Open–closed principle (OCP) = 開放封閉原則
L =Liskov substitution principle (LSP) = 里氏替換原則
I = Interface segregation principle (ISP) = 介面隔離原則
D = Dependency inversion principle (DIP) = 依賴反轉原則
維基百科中的定義:
S:認為「物件應該僅具有一種單一功能」的概念。
O:認為「軟體應該是對於擴充開放的,但是對於修改封閉的」的概念。
L:認為「程式中的物件應該是可以在不改變程式正確性的前提下被它的子類所替換的」的概念。
I:認為「多個特定客戶端介面要好於一個寬泛用途的介面」 的概念。
D:認為一個方法應該遵從「依賴於抽象而不是一個實例」的概念。
依賴注入是該原則的一種實現方式。
在使用vue框架時,也可以思考如何套用、應用這些原則,下面是我閱讀一些文章後,對於這些原則的整理、理解與想法,歡迎大家一起來討論:
S: class, function, components應該只有單一原則且一個被修改的理由,如果不止,應該被拆分出去,或細拆成其它components。
O: class, function, components 應該要被設計成開放(易於)擴充,對於修改封閉,如設計components可使用slot增加components擴充性。
L: 子類別應相容於所有父類別的方法及參數,任何子元件的修改,都不應該影響到父元件。
I: Interface應該被設計於通用的功能,像是動物的Interface 會有吃飯及睡覺的方法,但不應該有飛行的方法,因為不是所有動物都會飛行,而飛行的方法應該獨立出來給需要的類別使用;而在components不應該被強迫依賴於它不需要的屬性,如:該components只需要車色的屬性,就不應該傳入整台車子的屬性(car: { color, hp, brand})。
D: 父class或父components 不應該依賴或相依於 子class或子components。
相關的範例會在之後更新。