close

最近在學的東西,做個筆記。

SOLID是五個英文字母的縮寫,每一個英文字母代表一個原則。SOLID是一種寫程式的方法,一開始多費一些工夫,讓以後擴展功能、修改需求、跟維護會比較方便。


單一職責原則(Single responsibility principle, SRP)
每個物件,不管是類別、函數,負責的功能,都應該只做一件事。

 

開放封閉原則(Open-Close principle, OCP)
藉由增加新的程式碼來擴充系統的功能,而不是藉由修改原本已經存在的程式碼來擴充系統的功能。

 

里氏替換原則(Liskov substitution principle, LSP) 

簡單來說,當實作繼承了 interface 或 base-class的 sub-class,那麼在程式中,只要出現該 interface 或 base-class 的部份,都可以用 sub-class 替換。

 

接口隔離原則(Interface segregation principle, ISP)
針對不同需求的用戶,開放其對應需求的介面,提拱使用。可避免不相關的需求介面異動,造成被強迫一同面對異動的情況。

 

依賴反轉原則(Dependency inversion principle, DIP)

當 A 模組在內部使用 B 模組的情況下,我們稱 A 為高階模組,B 為低階模組。高階模組不應該依賴於低階模組,兩者都該依賴抽象介面。

 

 

第五個依賴注入的部分,我用我自己的話來說,就是A這個Class使用的其他Class方法都是用某個Interface實做出來的,A只引用這個Interface的Method,而不是在A內部實體化其他Class並且調用Method。

一般我們在實體化A的時候,無論是要用Cunstrutor也好、指定屬性也好、或者透過方法帶入也好,我們先實體化用這個Interface實作出來的Class,然後再帶入A,這樣A調用的Method就可以根據帶入的Class不同有所變化,變得更加靈活。

 

這五個原則的重點都在於應對未來軟體需求的改變,其中我覺得最有疑慮的是單一職責原則,因為這個原則極端解釋一點就是每一個Class都只能有一個function ,每一個function也只能有一行程式碼,我想實際上應該不是這樣,所以我目前還在尋求解釋。

 

參考文章: https://ithelp.ithome.com.tw/articles/10194274

參考文章: https://ithelp.ithome.com.tw/articles/10191553

arrow
arrow
    全站熱搜

    工程師黑田 發表在 痞客邦 留言(0) 人氣()