軟件設計模式(Design pattern),又稱設計模式,是一套被反覆使用、多數人知曉的、通過分類編目的、代碼設計經驗的總結。使用設計模式是爲了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性、程序的重用性。(引用自百度百科)html
設計模式是軟件設計思想的體現。編程
1、設計模式有如下原則:設計模式
1.單一職責原則(Single Responsibility Principle):ui
2.里氏代換原則,也叫里氏替換原則(Liskov Substitution Principle):spa
里氏代換原則中說,任何基類能夠出現的地方,子類必定能夠出現。 LSP是繼承複用的基石,只有當衍生類能夠替換掉基類,軟件單位的功能不受到影響時,基類才能真正被複用,而衍生類也可以在基類的基礎上增長新的行爲。里氏代換原則是對「開-閉」原則的補充。實現「開-閉」原則的關鍵步驟就是抽象化。而基類與子類的繼承關係就是抽象化的具體實現,因此里氏代換原則是對實現抽象化的具體步驟的規範 (引用自百度百科).net
3.依賴倒轉原則(Dependence Inversion Principle):設計
這個是開閉原則的基礎,具體內容:面向接口編程,依賴於抽象而不依賴於具體。寫代碼時用到具體類時,不與具體類交互,而與具體類的上層接口交互。代理
4.接口隔離原則(Interface Segregation Principle):server
每一個接口中不存在子類用不到卻必須實現的方法,若是否則,就要將接口拆分。htm
使用多個隔離的接口,比使用單個接口(多個接口方法集合到一個的接口)要好。
5.迪米特法則,又稱最少知識原則(Demeter Principle):
一個軟件實體應當儘量的少與其餘實體發生相互做用
6.合成複用原則:
少用繼承,多用合成關係來實現;儘可能首先使用合成/聚合的方式,而不是使用繼承。
7.開閉原則(Open Close Principle):
原文是:"Software entities should be open for extension,but closed for modification"。就是說模塊應對擴展開放,而對修改關閉
2、設計模式場景有如下23種:
1.建立型:
共5種:Factory Method(工廠方法模式)、Abstract Factory(抽象工廠模式)、Builder(建造者模式)、Prototype(原型模式)、Singleton(單例模式)
2.結構型:
共七種:Adapter(適配器模式)、Decorator(裝飾者模式)、Proxy(代理模式)、Façade(外觀模式)、Bridge(橋接模式)、Composite(組合模式)、Flyweight(享元模式)
3.行爲型:
共十一種:Interpreter(解釋器模式)、Template Method(模版方法模式)、Chain of Responsibility(職責鏈模式)、Command(命令模式)、Iterator(迭代器模式)、Mediator(中介者模式)、Memento(備忘錄模式)、Memento(備忘錄模式)、Observer(觀察者模式)、State(狀體模式)、Strategy(策略模式)、Visitor(訪問者模式)
參考: