Posted on 2010-03-09 16:31
鄭曉源 閱讀(1268)
評(píng)論(2) 編輯 收藏 引用
感謝GOF
感謝K_Eckel frwei@whu.edu.cn
感謝愛(ài)人
感謝家人
轉(zhuǎn)載請(qǐng)注明來(lái)源
希望能和兄弟們交流 jetty jetty2k_kyj@163.com
**************************************************************
架構(gòu)設(shè)計(jì),目前理解來(lái)看,就是對(duì)概念的 分級(jí),分離/組合,通信
分級(jí): 比如 繼承,比如 大模塊下的小模塊
分離: 比如 對(duì)象分類,組件分類
組合: 比如 類對(duì)象的組合
通信: 比如 通過(guò)接口,通過(guò)類WinMsg
1. 創(chuàng)建型模式
1.1 Factory Method(工廠方法)[一般對(duì)象創(chuàng)建]
1. 用類C1自身特色構(gòu)造函數(shù)封裝對(duì)象的創(chuàng)建
創(chuàng)建的調(diào)用在抽象工廠類的子類的虛函數(shù)F1中
創(chuàng)建后,可添加初始化代碼于F1中,F(xiàn)1返回C1對(duì)象指針
C1對(duì)象指針可 工廠析構(gòu)時(shí)自動(dòng)[安全] 或 不用時(shí)手動(dòng)[效率] 釋放
2. 擴(kuò)展(模板類法)
將抽象工廠類的子類做成模板類
傳入Cn作為參數(shù),就實(shí)現(xiàn)了編譯時(shí)類變化支持
3. 擴(kuò)展(配置文件法)
可增加Key,ClassName對(duì)應(yīng)的Xml配置文件
再由 m##n 宏 將ClassName轉(zhuǎn)成對(duì)應(yīng)的標(biāo)識(shí)符來(lái)調(diào)用
這樣,先將可能用到的Class都定義好,調(diào)用流程寫(xiě)好
更改Xml配置文件,就實(shí)現(xiàn)了運(yùn)行時(shí)類變化支持
1.2 Abstract Factory(抽象廠工)[相關(guān)聯(lián)的一組對(duì)象創(chuàng)建]
1. 在Factory Method(工廠方法)的基礎(chǔ)上
在抽象工廠類中為每一組具有相同創(chuàng)建過(guò)程的對(duì)象
建立一個(gè)虛函數(shù),其他類同F(xiàn)actory Method(工廠方法)
2. 如果虛函數(shù)不多,就只用一個(gè)抽象工廠的子類,
用函數(shù)名字劃分產(chǎn)品線(男鞋線/女鞋線)
3. 如果虛函數(shù)較多,可用多個(gè)抽象工廠的子類,
用類名(食品廠/鞋廠)劃分產(chǎn)品線,
相關(guān)聯(lián)的對(duì)象的創(chuàng)建就在一起了
1.3 Singleton(單件)[保證僅有一個(gè)實(shí)例]
1. 私有化 類構(gòu)造函數(shù)
只能通過(guò)靜態(tài)成員函數(shù)Instance來(lái)生成這個(gè)唯一對(duì)象
用靜態(tài)私有成員變量保存這個(gè)唯一實(shí)例對(duì)象的指針
用靜態(tài)公有函數(shù)GetInstance返回這個(gè)指針
注意在類析構(gòu)時(shí),SafeDel這個(gè)指針
2. 上面的具體工廠類,就應(yīng)該是一個(gè)Singleton對(duì)象
1.4 Builder(生成器)[相同構(gòu)造算法得到不同的復(fù)雜對(duì)象](STL)
1. 分離 構(gòu)造算法(穩(wěn)定) 與 構(gòu)造參數(shù)(不穩(wěn)定)
2. 需要 算法函數(shù)隊(duì)列 迭代器 容器
3. 例如 STL中的算法 nth_element
1.5 Prototype(原型)[自我復(fù)制]
1. 代碼
Prototype* ConcretePrototype::Clone() const
{
return new ConcretePrototype(*this); //拷貝構(gòu)造函數(shù)
}
2. 注意 類成員為 指針或復(fù)雜對(duì)象 時(shí),拷貝構(gòu)造函數(shù) 的 深層拷貝
2. 結(jié)構(gòu)型模式
2.1 Bridge(橋接)[分離接口與實(shí)現(xiàn)]
1. 接口類A 為 實(shí)現(xiàn)類B 的父類
2. A類中有類B對(duì)象的指針,可用函數(shù)賦值
3. 從而使類A的接口功能完整化,且實(shí)現(xiàn)獨(dú)立
未完,待續(xù)……