23种基本设计模式简介
1:創建類型的設計模式(Creational Pattern) 是對類的實例化過程的抽象化,告知如何有效地進行一個類的實例化。這類的設計模式包含5種,分別是工廠模式(Factory Method)、抽象工廠模式(Abstract Factory)、單鍵模式(Singleton)、建造模式(Builder)、原型模式(Prototype Pattern)。
(1):工廠模式(Factory Method)
工廠方法模式定義一個用于創建對象的接口,讓子類決定實例化哪一個類。Factory Method 使一個類的實例化延遲到其子類。
(2):抽象工廠模式(Abstract Factory)
抽象工廠模式提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。
(3):單鍵模式(Singleton)
單鍵模式保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。
(4):建造模式(Builder)
建造模式將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。
(5):原型模式(Prototype Pattern)
原型模式用原型實例指定創建對象的種類,并且通過拷貝這些原型創建新的對象。
2:結構類型的設計模式(Structural Pattern)是描述類和對象之間如何組合才最有成效和更合理。這類的設計模式包含7種,分別是適配器模式(Adapter)、合成模式(Composite)、裝飾模式(Decorator)、代理模式(Proxy)、享元模式(Flyweight)、外觀模式(Facade)、橋梁模式(Bridge)。
(1):適配器模式(Adapter)
適配器模式將一個類的接口轉換成客戶希望的另外一個接口。該模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。
(2):合成模式(Composite)
合成模式將對象組合成樹型結構以表示“部分---整體”的層次結構。該模式使得用戶對單個對象和組合對象的使用具有一致性。
(3):裝飾模式(Decorator)
裝飾模式動態地給一個對象添加一些額外的職責。就增加功能來說,該模式相比生成子類更為靈活。
(4):代理模式(Proxy)
代理模式為其他對象提供一種代理以控制對這個對象的訪問。
(5):享元模式(Flyweight)
享元模式運用共享技術有效地支持大量細粒度的對象。
(6):外觀模式(Facade)
外觀模式為子系統中的一組接口提供一個一致的界面。該模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。
(7):橋梁模式(Bridge)
橋梁模式將抽象部分與它的實現部分分離,使它們都可以獨立地變化。
3:行為類型的設計模式(Behavioral Pattern)是如何正確地標示各個類之間的職責,將合適的職責分配到合適的對象上。這類的設計模式包含11種,分別是解釋器模式(Interpreter)、中介者模式(Mediator)、策略模式(Stratrgy)、模板方法模式(Template Method)、觀察者模式(Observer)、迭代器模式(Iterator)、責任鏈模式(Chain of Responsibility)、命令模式(Command)、備忘錄模式(Memento)、狀態模式(State)、訪問者模式(Visitor)。
(1):解釋器模式(Interpreter)
解釋器模式給定一個語言,定義它的文法的一種表示,并定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子。
(2):中介者模式(Mediator)
中介者模式用一個中介對象封裝一系列的對象交互。中介者使各對象不需要顯式地相互引用,從而使其耦合松散,而且可以獨立地改變它們之間的交相。
(3):策略模式(Stratrgy)
策略模式定義一系列的算法,把它們一個個封裝起來,并且使它們可以相互替換。本模式使得算法可獨立于使用它的客戶而變化。
(4):模板方法模式(Template Method)
模板方法模式定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。該模式使得子類可以不改變一個算法的結構既可重定義該算法的某些特定步驟。
(5):觀察者模式(Observer)
觀察者模式定義對象間的一種一對多的依賴關系,當一個對象的狀態發生改變時,所有依賴于它的對象都得到通知并被自動更新。
(6):迭代器模式(Iterator)
迭代器模式提供一種方法順序訪問一個聚合對象中各個元素,而又不需暴露該對象的內部表示。
(7):責任鏈模式(Chain of Responsibility)
責任鏈模式使多個對象都有機會處理請求,從而避免請求的發送者和接收者之間的耦合關系。將這些對象連成一條鏈,并沿著這條鏈傳遞該請求,直到有一個對象處理它為止。
(8):命令模式(Command)
命令模式將一個請求封裝為一個對象,從而使你可用不同的請求對客戶地蠔參數化,對請求排隊或記錄請求日志,以及支持可撤消的操作。
(9):備忘錄模式(Memento)
備忘錄模式在不破壞封裝性的前提下,捕獲一個對象的內部狀態,并在該對象之外保存這個狀態,這樣以后就可將該對象恢復到原先保存的狀態。
(10):狀態模式(State)
狀態模式容許一個對象在其內部狀態改變時改變它的行為。對象看起來似乎修改了它的類。
(11):訪問者模式(Visitor)
訪問者模式表示一個作用于某對象結構中的各元素的操作。它使用戶可以在不改變各元素的類的前提下定義作用于這些元素的新操作。
總結
以上是生活随笔為你收集整理的23种基本设计模式简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个类型初始值设定项引发异常
- 下一篇: Asp.Net中几种相似数据绑定标记符号