SOLID組成:
● 單一職責原則 Single Responsibility Principle,SRP
● 開放閉合原則 Open Closed Principle,OCP
● 里氏替換原則 Liskov Substitution Principle,LSP
● 介面隔離原則 Interface Segregation Principle,ISP
● 依賴反轉原則 Dependency Inversion Principle,DIP
開放閉合原則
定義:Software entities(classes, modules, functions, etc.) should be open for extension but closed for modification.
目的:預測擴展點,使系統在不修改原始碼情況下就可以被輕易擴展。
舉個生活的例子:
仍然以超市為例子,現在的電子支付很發達,又因為疫情的推力,使更多人加入電子支付,但各家都有自己的一套系統,所以當設計到支付系統時程式碼應該會出現很多if-else語句或switch case,而此處就可以預測未來可能會新增其它支付方式,透過一個主介面讓其它支付方式實作這個介面。
以上就是系統在不修改原始碼情況下就可以被輕易擴展,透過將系統化分為一系列組件再將組件依賴關係進行組織,找到擴展點,所以說OCP為軟體架構設計主導原則,由預測擴展點處(介面)著手設計來降低修改所影響的範圍(實作介面延伸系統)。
天佑台灣(這兩天強震太多)