現(xiàn)實(shí)中的模式應(yīng)用

橋接模式

針對(duì)接口編程,就是橋接模式

策略模式

策略模式也可看作是針對(duì)接口編程

狀態(tài)模式

狀態(tài)模式通過(guò) Context 來(lái)切換狀態(tài),各個(gè)狀態(tài)直接是強(qiáng)關(guān)系。切換時(shí)直接 new 出下一個(gè)狀態(tài)。

模板方法模式

用來(lái)實(shí)現(xiàn)框架,規(guī)劃好調(diào)用流程,你來(lái)實(shí)現(xiàn),框架調(diào)用你。MFC 是一個(gè)很差實(shí)現(xiàn)。

抽象工廠模式

不同的數(shù)據(jù)訪問(wèn)族類,比如 oledb 族,oracle 族 等等

大部分時(shí)候不要替換 DAO,很少用到。

簡(jiǎn)單工廠模式

DLL 導(dǎo)出簡(jiǎn)單工廠函數(shù),由 DLL 導(dǎo)出函數(shù)創(chuàng)建對(duì)象

工廠方法模式

COM 類廠,自己實(shí)現(xiàn)

Builder 模式

windows 窗口是一個(gè)大對(duì)象,放在上面的各種按鈕是小對(duì)象,大對(duì)象由各種小對(duì)象構(gòu)造而成,構(gòu)造步驟通常在窗體的初始化函數(shù)類,比如 Init()

裝飾模式

裝飾模式可以做對(duì)象方法鉤子

享元模式

享元模式實(shí)際上可看作個(gè)多個(gè)對(duì)象共享一個(gè)對(duì)象引用,當(dāng)然這個(gè)對(duì)象引用可以用對(duì)象管理器管理器來(lái),比如 map,然后通過(guò) key 來(lái)查詢

迭代器模式

迭代器模式就是各種集合類的迭代接口統(tǒng)一,循環(huán)遍歷統(tǒng)一,通過(guò)自己的對(duì)象方法返回迭代器接口,迭代器的實(shí)例化 new 的時(shí)候傳 this 指針

Observer 模式

典型的一對(duì)多,相同的事件可注冊(cè)多個(gè)觀察者,如果沒(méi)有事件管理器,那么業(yè)務(wù)類直接實(shí)現(xiàn) Observer 接口,可接受觀察者訂閱。如果有事件管理器,觀察者可能直接連在事件管理器上,不與業(yè)務(wù)對(duì)象交互,業(yè)務(wù)對(duì)象直接發(fā)送事件即可。

如果是一對(duì)一,那么可直接看作聚合了一個(gè)簡(jiǎn)單的回調(diào)接口。

代理模式

遠(yuǎn)程方法調(diào)用代理

Visitor 模式

accept 可看作是一個(gè)不保持對(duì)象引用的 set 構(gòu)造子,只不過(guò)在接受之后直接調(diào)用了 Visitor 的 Visit 方法,并將 this 指針傳入。這樣的好處是,迭代時(shí),不同的被訪問(wèn)者都可以被相同的 Visitor 訪問(wèn),調(diào)用相同的 Visit 方法,當(dāng)然這個(gè) Visit 方法是重載的。

Dispatcher 模式

網(wǎng)絡(luò)協(xié)議分派,不同的協(xié)議由不同的 handler 來(lái)響應(yīng),dispatcher 可注冊(cè) handler,

如果是事件分發(fā)器,可以一個(gè)事件對(duì)應(yīng)多個(gè) handler。

最后編輯于
?著作權(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ù)。

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

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