對設(shè)計模式的簡要概括

對設(shè)計模式的簡要概括

創(chuàng)建型:

抽象工廠模式(Abstract Factory):提供一個接口,可以創(chuàng)建一系列相關(guān)或相互依賴的對象,而無需指定它們具體的類。

構(gòu)建器模式(Builder):將一個復(fù)雜類的表示與其構(gòu)造相分離,使得相同的構(gòu)建過程能夠得出不同的表示。

工廠方法模式(Factory Method):定義一個創(chuàng)建對象的接口,但由子類決定需要實例化哪一個類。工廠方法使得子類實例化的過程推遲。

原型模式(Prototype):用原型實例指定創(chuàng)建對象的類型,并且通過拷貝這個原型來創(chuàng)建新的對象。

單例模式(Singleton):保證一個類只有一個實例,并提供一個訪問它的全局訪問點。

結(jié)構(gòu)型:

適配器模式(Adapter):將一個類的接口轉(zhuǎn)換成用戶希望得到的另一種接口。它使原本不相容的接口得以協(xié)同工作。

橋接模式(Bridge):將類的抽象部分和它的實現(xiàn)部分分離開來,使它們可以獨立地變化。

組合模式(Composite):將對象組合成樹型結(jié)構(gòu)以表示“整體-部分”的層次結(jié)構(gòu),使得用戶對單個對象和組合對象的使用具有一致性。

裝飾模式(Decorator):動態(tài)地給一個對象添加一些額外的職責(zé)。它提供了用子類擴展功能的一個靈活的替代,比派生一個子類更加靈活。

外觀模式(Facade):定義一個高層接口,為子系統(tǒng)中的一組接口提供一個一致的外觀,從而簡化了該子系統(tǒng)的使用。

享元模式(Flyweight):提供支持大量細(xì)粒度對象共享的有效方法。

代理模式(Proxy):為其他對象提供一種代理以控制這個對象的訪問。

行為型:

職責(zé)鏈模式(Chain of Responsibility):通過給多個對象處理請求的機會,減少請求的發(fā)送者與接收者之間的耦合。將接收對象鏈接起來,在鏈中傳遞請求,直到有一個對象處理這個請求。

命令模式(Command):將一個請求封裝為一個對象,從而可用不同的請求對客戶進(jìn)行參數(shù)化,將請求排隊或記錄請求日志,支持可撤銷的操作。

解釋器模式(Interpreter):給定一種語言,定義它的文法表示,并定義一個解釋器,該解釋器用來根據(jù)文法表示來解釋語言中的句子。

迭代器模式(Iterator):提供一種方法來順序訪問一個聚合對象中的各個元素,而不需要暴露該對象的內(nèi)部表示。

中介者模式(Mediator):用一個中介對象來封裝一系列的對象交互。它使各對象不需要顯式地相互調(diào)用,從而達(dá)到低耦還可以獨立地改變對象間的交互。

備忘錄模式(Memento)在不破壞封裝性的前提下,捕獲一個對象的內(nèi)部狀態(tài),并在該對象之外保存這個狀態(tài),從而可以在以后將該對象恢復(fù)到原先保存的狀態(tài)。

觀察者模式(Observer):定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并自動更新。

狀態(tài)模式(State):允許一個對象在其內(nèi)部狀態(tài)改變時改變它的行為。

策略模式(Strategy):定義一系列算法,把它們一個個封裝起來,并且使它們之間可互相替換,從而讓算法可以獨立于使用它的用戶而變化。

模板方法模式(Template Method):定義一個操作中的算法骨架,而將一些步驟延遲到子類中,使得子類可以不改變一個算法的結(jié)構(gòu)即可重新定義算法的某些特定步驟。

訪問者模式(Visitor):表示一個作用于某對象結(jié)構(gòu)中的各元素的操作,使得在不改變各元素的類的前提下定義作用于這些元素的新操作

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容