設計模式是一套由軟體界前輩們總結出的可以反複使用的程式設計經驗,旨在提高代碼的可重用性,提高系統的可維護性,以及解決一系列複雜問題。設計模式包括6大設計原則和23種種設計模式。
6大設計原則:
單一職責原則SRP
應該有卻僅有一個原因引起類的變更,即類最好隻實作一種功能。高内聚。
單一職責的實作方式是一個職責一個接口。
單一職責适用于類和接口,同樣适用于方法,一個方法也應該隻做好一件事。
裡氏替換原則LSP
所有能使用父類的地方必須能透明地使用其子類的對象。
子類必須完全實作父類的方法,如果子類不能完整實作父類的方法,則建議使用依賴,聚集,組合等關系代替繼承。
依賴倒置原則DIP
實作類之間不發生直接的依賴關系,依賴關系通過接口或抽象類産生
接口和抽象類不應依賴實作類
實作類依賴接口或抽象類
每個類盡量都有接口或抽象類,變量的表面類型盡量是接口或抽象類,任何類都不應該從其他類派生。
接口隔離原則ISP
類間的依賴關系應該建立在最小的接口上,即接口盡量細化,提供給每個子產品應該是單一接口
接口要高内聚,減少對外互動
迪米特原則LOD
對象應對其他對象有最少的了解,隻與直接的朋友交流
出現在成員變量,方法的輸入輸出函數中的類稱為成員朋友類,而出現在方法體内部的類不屬于朋友類
如果一個方法放在本類中,既不增加類間關系,也對本類不産生負面影響,就放置在本類中。
類間解耦,弱耦合,高内聚
開閉原則OCP
一個軟體實體如類,子產品和函數應該對擴充開放,對修改關閉