設(shè)計(jì)模式復(fù)習(xí)大綱_第1頁
設(shè)計(jì)模式復(fù)習(xí)大綱_第2頁
設(shè)計(jì)模式復(fù)習(xí)大綱_第3頁
設(shè)計(jì)模式復(fù)習(xí)大綱_第4頁
設(shè)計(jì)模式復(fù)習(xí)大綱_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、設(shè)計(jì)模式復(fù)習(xí)大綱設(shè)計(jì)模式分為三種類型,共23 種。創(chuàng)建型模式:單例模式、抽象工廠模式、建造者模式、工廠模式、原型模式。結(jié)構(gòu)型模式:適配器模式、橋接模式、裝飾模式、組合模式、外觀模式、享元模式、代理模式。行為型模式:模版方法模式、命令模式、迭代器模式、觀察者模式、中介者模式、備忘錄模式、解釋器模式(Interpreter 模式)、狀態(tài)模式、策略模式、職責(zé)鏈模式 (責(zé)任鏈模式)、訪問者模式。創(chuàng)建型設(shè)計(jì)模式工廠模式(Factory)意圖定義一個用于創(chuàng)建對象的接口,讓子類決定實(shí)例化哪一個類。Factory Method 使一個類的實(shí)例化延遲到其子類。適用性當(dāng)一個類不知道它所必須創(chuàng)建的對象的類的時(shí)候。當(dāng)

2、一個類希望由它的子類來指定它所創(chuàng)建的對象的時(shí)候。當(dāng)類將創(chuàng)建對象的職責(zé)委托給多個幫助子類中的某一個,并且你希望將哪一個幫助子類是代理者這一信息局部化的時(shí)候。抽象工廠模式(Abstract Factory)意圖提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無需指定它們具體的類。適用性一個系統(tǒng)要獨(dú)立于它的產(chǎn)品的創(chuàng)建、組合和表示時(shí)。一個系統(tǒng)要由多個產(chǎn)品系列中的一個來配置時(shí)。當(dāng)你要強(qiáng)調(diào)一系列相關(guān)的產(chǎn)品對象的設(shè)計(jì)以便進(jìn)行聯(lián)合使用時(shí)。當(dāng)你提供一個產(chǎn)品類庫,而只想顯示它們的接口而不是實(shí)現(xiàn)時(shí)。建造者模式Builder意圖將一個復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。適用性當(dāng)創(chuàng)建復(fù)雜對

3、象的算法應(yīng)該獨(dú)立于該對象的組成部分以及它們的裝配方式時(shí)。當(dāng)構(gòu)造過程必須允許被構(gòu)造的對象有不同的表示時(shí)。原型模式Prototype意圖用原型實(shí)例指定創(chuàng)建對象的種類,并且通過拷貝這些原型創(chuàng)建新的對象。適用性當(dāng)要實(shí)例化的類是在運(yùn)行時(shí)刻指定時(shí),例如,通過動態(tài)裝載;或者為了避免創(chuàng)建一個與產(chǎn)品類層次平行的工廠類層次時(shí);或者當(dāng)一個類的實(shí)例只能有幾個不同狀態(tài)組合中的一種時(shí)。建立相應(yīng)數(shù)目的原型并克隆它們可能比每次用合適的狀態(tài)手工實(shí)例化該類更方便一些。單例模式Singleton意圖保證一個類僅有一個實(shí)例,并提供一個訪問它的全局訪問點(diǎn)。適用性當(dāng)類只能有一個實(shí)例而且客戶可以從一個眾所周知的訪問點(diǎn)訪問它時(shí)。當(dāng)這個唯一實(shí)

4、例應(yīng)該是通過子類化可擴(kuò)展的,并且客戶應(yīng)該無需更改代碼就能使用一個擴(kuò)展的實(shí)例時(shí)。適配器模式Adapter意圖將一個類的接口轉(zhuǎn)換成另外一個客戶希望的接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。適用性你想使用一個已經(jīng)存在的類,而它的接口不符合你的需求。你想創(chuàng)建一個可以復(fù)用的類,該類可以與其他不相關(guān)的類或不可預(yù)見的類(即那些接口可能不一定兼容的類)協(xié)同工作。(僅適用于對象 Adapter)你想使用一些已經(jīng)存在的子類,但是不可能對每一個都進(jìn)行子類化以匹配它們的接口。對象適配器可以適配它的父類接口。結(jié)構(gòu)型設(shè)計(jì)模式橋接模式Bridge意圖將抽象部分與它的實(shí)現(xiàn)部分分離,

5、使它們都可以獨(dú)立地變化。適用性你不希望在抽象和它的實(shí)現(xiàn)部分之間有一個固定的綁定關(guān)系。例如這種情況可能是因?yàn)?,在程序運(yùn)行時(shí)刻實(shí)現(xiàn)部分應(yīng)可以被選擇或者切換。類的抽象以及它的實(shí)現(xiàn)都應(yīng)該可以通過生成子類的方法加以擴(kuò)充。這時(shí)B r id g e 模式使你可以對不同的抽象接口和實(shí)現(xiàn)部分進(jìn)行組合,并分別對它們進(jìn)行擴(kuò)充。對一個抽象的實(shí)現(xiàn)部分的修改應(yīng)對客戶不產(chǎn)生影響,即客戶的代碼不必重新編譯。(C+-)你想對客戶完全隱藏抽象的實(shí)現(xiàn)部分。在C+”,類的表示在類接口中是可見的。有許多類要生成。這樣一種類層次結(jié)構(gòu)說明你必須將一個對象分解成兩個部分。Rumbaugh稱這種類層次結(jié)構(gòu)為“嵌套的普化"(neste

6、d generalizations )。你想在多個對象間共享實(shí)現(xiàn)(可能使用引用計(jì)數(shù)),但同時(shí)要求客戶并不知道這一點(diǎn)。一個簡單的例子便是Coplien 的 String 類,在這個類中多個對象可以共享同一個字符串表示(StringRep)。組合模式Composite意圖將對象組合成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu)。C o m p o s i t e使得用戶對單個對象和組合對象的使用具有一致性。適用性你想表示對象的部分整體層次結(jié)構(gòu)。你希望用戶忽略組合對象與單個對象的不同,用戶將統(tǒng)一地使用組合結(jié)構(gòu)中的所有對象。裝飾模式意圖動態(tài)地給一個對象添加一些額外的職責(zé)。就增加功能來說,Decorator模

7、式相比生成子類更為靈活。適用性在不影響其他對象的情況下,以動態(tài)、透明的方式給單個對象添加職責(zé)。 處理那些可以撤消的職責(zé)。當(dāng)不能采用生成子類的方法進(jìn)行擴(kuò)充時(shí)。一種情況是,可能有大量獨(dú)立的擴(kuò) 展,為支持每一種組合將產(chǎn)生大量的子類,使得子類數(shù)目呈爆炸性增長。另 一種情況可能是因?yàn)轭惗x被隱藏,或類定義不能用于生成子類。門面模式Facade外觀模式意圖為子系統(tǒng)中的一組接口提供一個一致的界面,F(xiàn)acade模式定義了一個高層接口 ,這個接口使得這一子系統(tǒng)更加容易使用。適用性當(dāng)你要為一個復(fù)雜子系統(tǒng)提供一個簡單接口時(shí)。子系統(tǒng)往往因?yàn)椴粩嘌莼?變得越來越復(fù)雜。大多數(shù)模式使用時(shí)都會產(chǎn)生更多更小的類。這使得子系統(tǒng)

8、 更具可重用性,也更容易對子系統(tǒng)進(jìn)行定制,但這也給那些不需要定制子系 統(tǒng)的用戶帶來一些使用上的困難。Facade可以提供一個簡單的缺省視圖,這 一視圖對大多數(shù)用戶來說已經(jīng)足夠,而那些需要更多的可定制性的用戶可以 越過Facade層??蛻舫绦蚺c抽象類的實(shí)現(xiàn)部分之間存在著很大的依賴性。引入Facade將這個子系統(tǒng)與客戶以及其他的子系統(tǒng)分離,可以提高子系統(tǒng)的獨(dú)立性和可移植 性。當(dāng)你需要構(gòu)建一個層次結(jié)構(gòu)的子系統(tǒng)時(shí),使用門面模式定義子系統(tǒng)中每層的入口點(diǎn)。如果子系統(tǒng)之間是相互依賴的,你可以讓它們僅通過Facade進(jìn)行通 訊,從而簡化了它們之間的依賴關(guān)系。享元模式Flyweight意圖運(yùn)用共享技術(shù)有效地支持

9、大量細(xì)粒度的對象。適用性一個應(yīng)用程序使用了大量的對象。完全由于使用大量的對象,造成很大的存儲開銷。對象的大多數(shù)狀態(tài)都可變?yōu)橥獠繝顟B(tài)。如果刪除對象的外部狀態(tài),那么可以用相對較少的共享對象取代很多組對應(yīng)用程序不依賴于對象標(biāo)識。由于 Flyweight對象可以被共享,對于概念上 明顯有別的對象,標(biāo)識測試將返回真值。代理模式Proxy意圖為其他對象提供一種代理以控制對這個對象的訪問。適用性在需要用比較通用和復(fù)雜的對象指針代替簡單的指針的時(shí)候,使用Proxy模式。下面是一 些可以使用Proxy模式常見情況:遠(yuǎn)程代理(Remote Proxy)為一個對象在不同的地址空間提供局部代表。虛代理(Virtual

10、 Proxy)根據(jù)需要創(chuàng)建開銷很大的對象。保護(hù)代理(Protection Proxy)控制對原始對象的訪問。保護(hù)代理用于對象應(yīng) 該有不同的訪問權(quán)限的時(shí)候。智能指引(Smart Referenced取代了簡單的指針,它在訪問對象時(shí)執(zhí)行一些附加操作。 它的典型用途包括:對指向?qū)嶋H對象的引用計(jì)數(shù),這樣當(dāng)該對象沒有引用時(shí),可以自動釋放它(也 稱為 SmartPointe網(wǎng)。當(dāng)?shù)谝淮我靡粋€持久對象時(shí),將它裝入內(nèi)存。在訪問一個實(shí)際對象前,檢查是否已經(jīng)鎖定了它,以確保其他對象不能改變 它。行為型設(shè)計(jì)模式職責(zé)鏈模式 Chain of Responsibility意圖使多個對象都有機(jī)會處理請求,從而避免請求的

11、發(fā)送者和接收者之間的耦合關(guān)系。將這些對象連成一條鏈,并沿著這條鏈傳遞該請求,直到有一個對象處理它 為止。適用性有多個的對象可以處理一個請求,哪個對象處理該請求運(yùn)行時(shí)刻自動確定。你想在不明確指定接收者的情況下,向多個對象中的一個提交一個請求??商幚硪粋€請求的對象集合應(yīng)被動態(tài)指定。命令模式Command意圖將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進(jìn)行參數(shù)化;對請求排隊(duì)或記錄請求日志,以及支持可取消的操作 適用性像上面討論的MenuItem對象那樣,抽象出待執(zhí)行的動作以參數(shù)化某對象。你可用過程語言中的回調(diào)(callback)函數(shù)表達(dá)這種參數(shù)化機(jī)制。所謂回調(diào)函 數(shù)是指函數(shù)先在某處注冊,而

12、它將在稍后某個需要的時(shí)候被調(diào)用。Command 模式是回調(diào)機(jī)制的一個面向?qū)ο蟮奶娲?。在不同的時(shí)刻指定、排列和執(zhí)行請求。一個Command對象可以有一個與初始請求無關(guān)的生存期。如果一個請求的接收者可用一種與地址空間無關(guān)的方 式表達(dá),那么就可將負(fù)責(zé)該請求的命令對象傳送給另一個不同的進(jìn)程并在那 兒實(shí)現(xiàn)該請求。支持取消操作。Command的Execute操作可在實(shí)施操作前將狀態(tài)存儲起來, 在取消操作時(shí)這個狀態(tài)用來消除該操作的影響。Command接口必須添加一個Execute操作,該操作取消上一次Execute調(diào)用的效果。執(zhí)行的命令被存儲 在一個歷史列表中??赏ㄟ^向后和向前遍歷這一列表并分別調(diào)用Une

13、xecute和Execute來實(shí)現(xiàn)重?cái)?shù)不限的“取消”和“重做”。支持修改日志,這樣當(dāng)系統(tǒng)崩潰時(shí),這些修改可以被重做一遍。在Command 接口中添加裝載操作和存儲操作,可以用來保持變動的一個一致的修改日志。從崩潰中恢復(fù)的過程包括從磁盤中重新讀入記錄下來的命令并用Execute操作重新執(zhí)行它們。用構(gòu)建在原語操作上的高層操作構(gòu)造一個系統(tǒng)。這樣一種結(jié)構(gòu)在支持事務(wù) (Transaction)的信息系統(tǒng)中很常見。一個事務(wù)封裝了對數(shù)據(jù)的一組變動。Command模式提供了對事務(wù)進(jìn)行建模的方法。Command有一個公共的接口, 使得你可以用同一種方式調(diào)用所有的事務(wù)。同時(shí)使用該模式也易于添加新事 務(wù)以擴(kuò)展系統(tǒng)。

14、解析器模式Interpreter意圖給定一個語言,定義它的文法的一種表示,并定義一個解釋器,這個解釋器使用 該表示來解釋語言中的句子。適用性當(dāng)有一個語言需要解釋執(zhí)行,并且你可將該語言中的句子表示為一個抽象語 法樹時(shí),可使用解釋器模式。而當(dāng)存在以下情況時(shí)該模式效果最好: 該文法簡單對于復(fù)雜的文法,文法的類層次變得龐大而無法管理。此時(shí)語法 分析程序生成器這樣的工具是更好的選擇。它們無需構(gòu)建抽象語法樹即可解 釋表達(dá)式,這樣可以節(jié)省空間而且還可能節(jié)省時(shí)間。效率不是一個關(guān)鍵問題最高效的解釋器通常不是通過直接解釋語法分析樹 實(shí)現(xiàn)的,而是首先將它們轉(zhuǎn)換成另一種形式。例如,正則表達(dá)式通常被轉(zhuǎn)換 成狀態(tài)機(jī)。但即

15、使在這種情況下,轉(zhuǎn)換器仍可用解釋器模式實(shí)現(xiàn),該模式仍 是有用的。迭代器模式Iterator意圖提供一種方法順序訪問一個聚合對象中各個元素,而又不需暴露該對象的內(nèi)部表小0適用性訪問一個聚合對象的內(nèi)容而無需暴露它的內(nèi)部表示。支持對聚合對象的多種遍歷。為遍歷不同的聚合結(jié)構(gòu)提供一個統(tǒng)一的接口(即,支持多態(tài)迭代)。中介模式Mediator用一個中介對象來封裝一系列的對象交互。 中介者使各對象不需要顯式地相互引 用,從而使其耦合松散,而且可以獨(dú)立地改變它們之間的交互。適用性一組對象以定義良好但是復(fù)雜的方式進(jìn)行通信。產(chǎn)生的相互依賴關(guān)系結(jié)構(gòu)混亂且難以理解。一個對象引用其他很多對象并且直接與這些對象通信 ,導(dǎo)致

16、難以復(fù)用該對象。 想定制一個分布在多個類中的行為,而又不想生成太多的子類。備忘錄模式Memento意圖在不破壞封裝性的前提下,捕獲一個對象的內(nèi)部狀態(tài),并在該對象之外保存這個 狀態(tài)。這樣以后就可將該對象恢復(fù)到保存的狀態(tài)。適用性必須保存一個對象在某一個時(shí)刻的(部分)狀態(tài),這樣以后需要時(shí)它才能恢復(fù) 到先前的狀態(tài)。如果一個用接口來讓其它對象直接得到這些狀態(tài),將會暴露對象的實(shí)現(xiàn)細(xì)節(jié)并破壞對象的封裝性。觀察者模式Observer意圖定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時(shí),所有依賴 于它的對象都得到通知并被自動更新。適用性當(dāng)一個抽象模型有兩個方面,其中一個方面依賴于另一方面。將這二者封

17、裝 在獨(dú)立的對象中以使它們可以各自獨(dú)立地改變和復(fù)用。當(dāng)對一個對象的改變需要同時(shí)改變其它對象,而不知道具體有多少對象有待 改變。當(dāng)一個對象必須通知其它對象,而它又不能假定其它對象是誰。換言之,你 不希望這些對象是緊密耦合的。狀態(tài)模式State意圖允許一個對象在其內(nèi)部狀態(tài)改變時(shí)改變它的行為。對象看起來似乎修改了它的 類。適用性一個對象的行為取決于它的狀態(tài),并且它必須在運(yùn)行時(shí)刻根據(jù)狀態(tài)改變它的 行為。一個操作中含有龐大的多分支的條件語句,且這些分支依賴于該對象的狀態(tài)。這個狀態(tài)通常用一個或多個枚舉常量表示。通常 ,有多個操作包含這一相同的條件結(jié)構(gòu)。State模式將每一個條件分支放入一個獨(dú)立的類中。 這

18、使得 你可以根據(jù)對象自身的情況將對象的狀態(tài)作為一個對象, 這一對象可以不依 賴于其他對象而獨(dú)立變化。策略模式Strategy意圖定義一系列的算法,把它們一個個封裝起來,并且使它們可相互替換。本模式使得 算法可獨(dú)立于使用它的客戶而變化。適用性許多相關(guān)的類僅僅是行為有異?!安呗浴碧峁┝艘环N用多個行為中的一個行 為來配置一個類的方法。需要使用一個算法的不同變體。例如,你可能會定義一些反映不同的空間/時(shí)間權(quán)衡的算法。當(dāng)這些變體實(shí)現(xiàn)為一個算法的類層次時(shí),可以使用策略模 式。算法使用客戶不應(yīng)該知道的數(shù)據(jù)。可使用策略模式以避免暴露復(fù)雜的、與算 法相關(guān)的數(shù)據(jù)結(jié)構(gòu)。一個類定義了多種行為,并且這些行為在這個類的操

19、作中以多個條件語句的 形式出現(xiàn)。將相關(guān)的條件分支移入它們各自的Strategy類中以代替這些條件語句。模版模式意圖定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。Te m p l a t e M e t h o d使得子類可以不改變一個算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟。適用性一次性實(shí)現(xiàn)一個算法的不變的部分,并將可變的行為留給子類來實(shí)現(xiàn)。各子類中公共的行為應(yīng)被提取出來并集中到一個公共父類中以避免代碼重復(fù)。這是Opdyke和Johnson所描述過的“重分解以一般化”的一個很好的例子。首先識別現(xiàn)有代碼中的不同之處,并且將不同之處分離為新的操作。最后,用一個調(diào)用這些新的操作的模板方法來替

20、換這些不同的代碼??刂谱宇悢U(kuò)展。模板方法只在特定點(diǎn)調(diào)用“ hook”操作,這樣就只允許在這 些點(diǎn)進(jìn)行擴(kuò)展。訪問者模式意圖表示一個作用于某對象結(jié)構(gòu)中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用于這些元素的新操作。適用性一個對象結(jié)構(gòu)包含很多類對象,它們有不同的接口,而你想對這些對象實(shí)施一些依賴于其具體類的操作。需要對一個對象結(jié)構(gòu)中的對象進(jìn)行很多不同的并且不相關(guān)的操作,而你想避免讓這些操作“污染”這些對象的類。 Visitor 使得你可以將相關(guān)的操作集中起來定義在一個類中。當(dāng)該對象結(jié)構(gòu)被很多應(yīng)用共享時(shí),用 Visitor 模式讓每個應(yīng)用僅包含需要用到的操作。定義對象結(jié)構(gòu)的類很少改變,

21、但經(jīng)常需要在此結(jié)構(gòu)上定義新的操作。改變對象結(jié)構(gòu)類需要重定義對所有訪問者的接口,這可能需要很大的代價(jià)。如果對象結(jié)構(gòu)類經(jīng)常改變,那么可能還是在這些類中定義這些操作較好。面向?qū)ο笤O(shè)計(jì)原則 華一Single Responsibility Principleo從次件交化的制度來行,就一個夫而三r底也僅有一個讓生生變化的原因.o工確抽象是女現(xiàn)sqp的關(guān)鍵 開閉原則 Open-Closed PrincipleO或件立體(類、嗔決,困效等等)成凌是可以獷履的,也是不可修改的。開團(tuán)原陽是曲向?qū)t設(shè)計(jì)的垓心.拍皴是OCP3Z)根”©總有一些功能不能畫二擴(kuò)展*立說卷要修改正代碼,不要Qver<on

22、sideOCP 里氏替換原則 Liskov Substitution PrincipleO在任何父類出觀的地方都可以用其子類哥,.同一個增多像系中的對象電關(guān)有共同的行為杼征.。型承關(guān)系(IS-A)是基于對象打行為而非其概念,行為溝5于二下文和具分爆杲© LSF例子:java util Properties is a java util Hasntable LSP是理論的而且產(chǎn)杷的,有叼雙際不能完全滿足LSP是可以 依初JLXJS則 Dependence Inversion Principle。鬲房膜塊不皮也,衣斐玉&女,二的立友依陽于酒款.0進(jìn)一步的,油爭.不成說農(nóng)頓于知方,

23、汨節(jié)或該農(nóng)骸于汨較.O針對至索程,不要對實(shí)現(xiàn)需程 接口外裔原則 Interface Segregation Principleo至應(yīng)該是原子的、尚內(nèi)聚出演石立的角邑或受供3M立的角巨.c sp可以看曲是sqp在芟口中的搪述. 迪米特法則LawOfXmetere f 對象應(yīng)當(dāng)對其但對象盡可能少的了解,只和言M偵破的對歙遇宜華E各小對象之間的轄合,更商 年城的可jfe滬性 組合合只用原則 Composlte/Aggregste Reuse Principle。在一個新的對密里面使用一些已有的對領(lǐng),使之成為新對歙的一部分;新的燈統(tǒng)通上向這與對領(lǐng)的要 派達(dá)司旦用己有功能的目的.。殂三是里含后用包含對錄

24、tr如節(jié)對于客戶是不可見的.。造承是白息區(qū)用,登理臺,代利是於公的被艮用,。型承通K了封裳.父關(guān)的知方疑點(diǎn)紿了子關(guān).。追承的實(shí)說是靜力的,運(yùn)行時(shí)佞不能改變,缺乏靈活性.設(shè)計(jì)模式解決設(shè)計(jì)問題1,尋擾合適的對轂。設(shè)計(jì)嗔式幫你確定并不明顯的0和宿述這些象的對氫描述過程或算法的對象現(xiàn)實(shí)n廣不存在, 但它們丸是設(shè)計(jì)的關(guān)鍵部分。SKategy模式描述了怎樣實(shí)現(xiàn)可巨攪的算法族.。Stated寫實(shí)體笆每一個雙志描述為一個對象.。Facade模式后述了怎樣書對賽表示完整的子系統(tǒng),F(xiàn)t/w+gh嚏式描述了如何支持大量的最小粒度的燈配。其他一目諼計(jì)模式描述了將一個對象分解成許多小對象的特定方法.Abstract F

25、actory和Bu Ide,產(chǎn)生那 穌1負(fù)。5m他對象的象.。Visit。床Comma壯定的對象專門欠責(zé)實(shí)現(xiàn)對其他對裝或?qū)ο蠼M的請求.3.鋌龍象的接H。設(shè)計(jì)如:通1確定接口的主要的啦分及經(jīng)接口發(fā)送的數(shù)免類型,來幫助你定義安口.設(shè)廠模式乜盧 還會告訴你接口中不應(yīng)包括那些東西.。設(shè)計(jì)度式包臉了接口之間的關(guān)系.DecoacrfflPro源式要求Decorato鬧Proq對象的潼口與被修 曬對象和受委托的對象一致.。Visitor®:中,Vislo腋口必須反映出Msilo便訪問的對象的斫有類。的均束削。通過顯式地指定一來創(chuàng)建對象.在創(chuàng)建龍象時(shí)指類名將使?fàn)柺芴囟▽?shí)現(xiàn)的約束而不是特定接n t: Abstract Factory Factory Method Prototype o對寫球操作的依魁 當(dāng)你為請求指定一個特殘的操作時(shí),完成該清末的方式就固定下來了。為避免?B請求代碼寫死爾桁可以在編譯時(shí)刻或運(yùn)行時(shí)刻很方便地改兗響應(yīng)請求的方法. : Cha

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論