-
創(chuàng)建型 :一個(gè)對(duì)象的創(chuàng)建
單例:允許存在一個(gè)且僅存在一個(gè)給定類(lèi)的實(shí)例
-
工廠方法:定義一個(gè)用于創(chuàng)建對(duì)象的接口,但讓實(shí)現(xiàn)這個(gè)接口的類(lèi)來(lái)決定實(shí)例化哪個(gè)類(lèi)
(封裝對(duì)象創(chuàng)建過(guò)程,提升創(chuàng)建對(duì)象方法的復(fù)用性)
-
抽象工廠:提供一個(gè)用于創(chuàng)建相關(guān)對(duì)象族的接口,而無(wú)需指定具體的類(lèi)
(如何找到正確的抽象)
建造者模式:將復(fù)雜對(duì)象的構(gòu)建和其表示分離,以便同一個(gè)構(gòu)造過(guò)程可以創(chuàng)建不同的標(biāo)識(shí)
-
原型模式:使用原型實(shí)例指定創(chuàng)建對(duì)象的種類(lèi),然后通過(guò)拷貝這些原型來(lái)創(chuàng)建新的對(duì)象
(原型提供拷貝入口;調(diào)用拷貝入口返回副本)
-
結(jié)構(gòu)型 :多個(gè)對(duì)象的關(guān)系,即多個(gè)對(duì)象之間的組合方式
-
代理模式:給一個(gè)對(duì)象提供一個(gè)代理對(duì)象,并由代理對(duì)象控制原對(duì)象的引用
(和裝飾器有點(diǎn)相似,代理控制對(duì)象訪問(wèn),但是裝飾器是改變對(duì)象行為)
-
橋接模式:將抽象與實(shí)現(xiàn)分離,使它們都可以獨(dú)立變
(橫向擴(kuò)展)
-
裝飾器模式:動(dòng)態(tài)的為一個(gè)對(duì)象添加新功能,同時(shí)又不改變其結(jié)構(gòu),相當(dāng)于對(duì)現(xiàn)有對(duì)象進(jìn)行了一個(gè)包裝
(動(dòng)態(tài)擴(kuò)展,避免大量子類(lèi)派生)
-
適配器模式:將類(lèi)的接口轉(zhuǎn)為客戶期望的另一個(gè)接口,適配器可以讓不兼容的兩個(gè)類(lèi)一起協(xié)調(diào)工作
(轉(zhuǎn)換)
-
門(mén)面模式:為子系統(tǒng)中的一組接口提供統(tǒng)一的接口。它定義了一個(gè)更高級(jí)別的接口,使子系統(tǒng)更容易使用
(簡(jiǎn)化外部系統(tǒng)使用內(nèi)部多個(gè)子系統(tǒng)的使用方式)
-
組合模式:將對(duì)象組合成樹(shù)形結(jié)構(gòu)以表示整個(gè)部分的層次結(jié)構(gòu)。讓用戶統(tǒng)一對(duì)待單個(gè)對(duì)象和對(duì)象的組合
(表達(dá)部分與整體關(guān)系,統(tǒng)一對(duì)待,通常是一種樹(shù)形結(jié)構(gòu))
-
享元模式:共享實(shí)例,減少內(nèi)存使用
(找出相似特性,復(fù)用特性;享元模式強(qiáng)調(diào)空間效率,緩存強(qiáng)調(diào)時(shí)間效率)
-
-
行為型:對(duì)象的內(nèi)部算法和職責(zé)劃分
-
觀察者模式:定義對(duì)象之間一對(duì)多依賴(lài)關(guān)系,對(duì)象改變狀態(tài)時(shí),所有依賴(lài)項(xiàng)都會(huì)自動(dòng)得到通知和更新
(發(fā)布-訂閱)
-
模板模式:在操作中定義算法的框架,將一些步驟推遲到子類(lèi)中
(算法框架,流程框架)
-
策略模式:定義一系列算法,封裝每個(gè)算法,并使它們可以互換
(客戶決定使用哪些策略)
-
責(zé)任鏈模式:為請(qǐng)求創(chuàng)建一個(gè)接收此請(qǐng)求對(duì)象的鏈
(構(gòu)建流水線,一一處理請(qǐng)求)
-
迭代器模式:提供一種對(duì)容器對(duì)象中的各個(gè)元素進(jìn)行訪問(wèn)的方法,而又不暴露該對(duì)象內(nèi)部細(xì)節(jié)
(將訪問(wèn)和遍歷的職責(zé)從集合對(duì)象中分離出來(lái),放入編著的協(xié)議對(duì)象中)
-
狀態(tài)模式:允許一個(gè)對(duì)象在其內(nèi)部狀態(tài)改變時(shí)改變它的行為
(找到合適的抽象狀態(tài)以及狀態(tài)之間的轉(zhuǎn)移關(guān)系,通過(guò)改變狀態(tài)來(lái)改變行為的目的)
-
訪問(wèn)者模式:允許在運(yùn)行時(shí)將一個(gè)或者多個(gè)操作作用于一組對(duì)象,將操作與對(duì)象結(jié)構(gòu)分離
(分離對(duì)象結(jié)構(gòu)和對(duì)象操作;動(dòng)態(tài)擴(kuò)展一組對(duì)象的行為)
-
備忘錄模式:保持一個(gè)對(duì)象的某個(gè)狀態(tài),以便在適當(dāng)?shù)臅r(shí)候恢復(fù)對(duì)象
(快照模式)
-
命令模式:將請(qǐng)求封裝成對(duì)象,以便使用不通的請(qǐng)求
(分離命令者和執(zhí)行者;操作封裝在對(duì)象中,簡(jiǎn)單說(shuō)就是函數(shù)方法封裝成對(duì)象方便傳輸,類(lèi)似java8函數(shù)作為參數(shù)傳遞)
解釋器模式:用于定義語(yǔ)言的語(yǔ)法規(guī)則表示,并提供解釋器來(lái)處理句子中的語(yǔ)法
(為了解釋一門(mén)語(yǔ)言,而為語(yǔ)言創(chuàng)建的解釋器)
-
中介模式:封裝了一組對(duì)象的交互,這組對(duì)象會(huì)將他們的交互委托給中介者對(duì)象,而不是直接交互
(中介者起到中轉(zhuǎn)和協(xié)調(diào)作用,主要是提供了減少對(duì)象質(zhì)檢耦合度的思路)
-
分別用一句話概括常見(jiàn)的設(shè)計(jì)模式
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 設(shè)計(jì)模式一共有23種,一般會(huì)分為三大類(lèi) 創(chuàng)建模式 (7種) 創(chuàng)建模式是對(duì)類(lèi)的實(shí)例化過(guò)程的抽象化。系統(tǒng)在創(chuàng)建對(duì)象時(shí)...
- 前言:簡(jiǎn)書(shū)中看到簡(jiǎn)友@四月葡萄分析了23種設(shè)計(jì)模式,每一種設(shè)計(jì)模式使用的簡(jiǎn)單的代碼描述,淺顯易懂。最難得是每種設(shè)計(jì)...
- 1. 前言 斷斷續(xù)續(xù)寫(xiě)了一段時(shí)間的設(shè)計(jì)模式,終于把經(jīng)典的23種設(shè)計(jì)模式全寫(xiě)完了。下面對(duì)這些設(shè)計(jì)模式總結(jié)一下。 2....
- 1. 前言 斷斷續(xù)續(xù)寫(xiě)了一段時(shí)間的設(shè)計(jì)模式,終于把經(jīng)典的23種設(shè)計(jì)模式全寫(xiě)完了。下面對(duì)這些設(shè)計(jì)模式總結(jié)一下。 2....
- 1)特點(diǎn) 2)使用場(chǎng)景及補(bǔ)充 工廠模式(Factory): 1)將對(duì)象的創(chuàng)建實(shí)現(xiàn)隔離 2)適用于有繼承結(jié)構(gòu)的對(duì)象創(chuàng)...