整體來說設計模式分為三大類:
建立型模式。共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結構型模式,共七種:擴充卡模式、裝飾器模式、代理模式、外觀模式(門面模式)、橋接模式、組合模式、享元模式。
行為型模式,共十一種:政策模式、模闆方法模式、觀察者模式、疊代子模式、責任鍊模式、指令模式、備忘錄模式、狀态模式、訪問者模式、中介者模式、解釋器模式。
l 開閉原則(OpenClose Principle):開閉原則就是說對擴充開放。對改動關閉。
在程式須要進行拓展的時候,不能去改動原有的代碼,實作一個熱插拔的效果。是以一句話概括就是:為了使程式的擴充性好,易于維護和更新。想要達到這種效果,我們須要使用接口和抽象類。後面的詳細設計中我們會提到這點。
l 裡氏代換原則(LiskovSubstitution Principle):裡氏代換原則(LiskovSubstitution Principle LSP)面向對象設計的基本原則之中的一個。
裡氏代換原則中說,不論什麼基類能夠出現的地方。子類一定能夠出現。 LSP是繼承複用的基石,僅僅有當衍生類能夠替換掉基類,軟體機關的功能不受到影響時,基類才幹真正被複用,而衍生類也能夠在基類的基礎上添加新的行為。裡氏代換原則是對“開-閉”原則的補充。
實作“開-閉”原則的關鍵步驟就是抽象化。而基類與子類的繼承關系就是抽象化的詳細實作。是以裡氏代換原則是對實作抽象化的詳細步驟的規範。—
l
依賴倒轉原則(DependenceInversion Principle):這個是開閉原則的基礎。詳細内容:真對接口程式設計,依賴于抽象而不依賴于詳細。
l 接口隔離原則(InterfaceSegregation Principle):這個原則的意思是:使用多個隔離的接口,比使用單個接口要好。還是一個減少類之間的耦合度的意思,從這兒我們看出,事實上設計模式就是一個軟體的設計思想,從大型軟體架構出發。為了更新和維護友善。是以上文中多次出現:減少依賴,減少耦合。
迪米特法則(最少知道原則)(DemeterPrinciple):為什麼叫最少知道原則。就是說:一個實體應當盡量少的與其它實體之間發生互相作用。使得系統功能子產品相對獨立。
l 合成複用原則(CompositeReuse Principle):原則是盡量使用合成/聚合的方式。而不是使用繼承。