1. 程式人生 > >6大設計原則總結

6大設計原則總結

單一職責原則

單一職責原則的目標是類,通過設計介面,使得類從功能上更加純粹,只有一種職責。 這樣設計介面後,整體會更加清晰明瞭,條理分明。不會有混亂的感覺。

里氏替換原則

總結起來很簡單,父類可以任意被替換成子類。 要達到這個目的,就需要子類在繼承父類的時候,子類你可以擴充新的功能,但不重寫父類的非抽象實現,不能改變父類的邏輯。 其實仔細想想,繼承或者說父類和子類理想的關係就應該是這樣:將共同的那部分放在父類,子類只做擴充套件。 同時,因為要實現“父類可以被替換成子類”這個目的。如果子類需要過載父類方法,就需要在行參上擴大,返回值上縮小。反之父類就無法替換成子類。

依賴倒置原則

    * 高層模組不應該依賴於低層模組,兩者都應該依賴於抽象。
    * 抽象不應該依賴於具體
    * 具體依賴於抽象

總結起來就是“面向介面程式設計”。

迪米特法則

迪米特法則 又稱 最少知識原則,意思就是我只關心我依賴的物件。 比如:a依賴b,b又依賴c,且a不依賴c。 這時候a可以呼叫b的方法,但是a不能通過b來獲取c,然後呼叫c的方法。 這部分c的方法,理應封裝在b的內部,只需要a呼叫b的方法,間接完成了對 c的方法呼叫。

開閉原則

    對擴充套件開放,對修改關閉。

開閉原則感覺是個綱領性東西,沒有具體的實現方式,只告訴你最終的目標。

如果你需要修改一個類,最簡單的當然是直接上手改了。但如果這個類是個父類呢?直接改有可能會影響到其他類,而且如果這個類用的地方很多,就算不是父類,也需要重新測試,最主要的是破壞了已經經過了反覆測試,很健壯的程式碼。