0
4
84
63367
5
定義了一系列的算法,并將每一個算法封裝起來,而且使它們還可以相互替換。策模式讓算法獨(dú)立于使用它的客戶而獨(dú)立變化。 角色: Context:環(huán)境角色,聚合抽象策略角色 Stra...
把請求從鏈中的一個對象傳到下一個對象,直到請求被響應(yīng)為止。通過這種方式去除對象之間的耦合。
在不破壞封裝性的前提下,獲取并保存一個對象的內(nèi)部狀態(tài),以便以后恢復(fù)它。
定義一個中介對象來簡化原有對象之間的交互關(guān)系,降低系統(tǒng)中對象間的耦合度,使原有對象之間不必相互了解。 角色: IMediator:抽象中介者,定義了同事對象到中介者對象的接口...
多個對象間存在一對多關(guān)系,當(dāng)一個對象發(fā)生改變時,把這種改變通知給其他多個對象,從而影響其他對象的行為。
提供一種方法來順序訪問聚合對象中的一系列數(shù)據(jù),而不暴露聚合對象的內(nèi)部表示。
在不改變集合元素的前提下,為一個集合中的每個元素提供多種訪問方式,即每個元素有多個訪問者對象訪問。 角色: Visitor:抽象的訪問者 ConcreteVistor:具體訪...
將一個請求封裝為一個對象,使發(fā)出請求的責(zé)任和執(zhí)行請求的責(zé)任分割開。四個角色 Invoker:調(diào)用者角色 Command:命令角色,一般為接口或抽象類 Receiver:接受者...
定義一個操作中的算法骨架,將算法的一些步驟延遲到子類中,使得子類在可以不改變該算法結(jié)構(gòu)的情況下重定義該算法的某些特定步驟。
為某對象提供一種代理以控制對該對象的訪問。即客戶端通過代理間接地訪問該對象,從而限制、增強(qiáng)或修改該對象的一些特性。 靜態(tài)代理:需要定義接口或者父類,被代理對象與代理對象一起實(shí)...
提供支持大量細(xì)粒度對象共享的有效方法。內(nèi)部狀態(tài):指對象共享出來的信息,存儲在享元對象內(nèi)部且不會隨環(huán)境的改變而改變。外部狀態(tài):指對象得以依賴的一個標(biāo)記,是隨環(huán)境的改變而改變的、...
定義一個高層接口,為子系統(tǒng)中的一組接口提供一個一致的外觀,從而簡化了該子系統(tǒng)的使用。
將對象組合成樹型結(jié)構(gòu)以表示“整體-部分”的層次結(jié)構(gòu),使得用戶對單個對象和組合對象的使用具有一致性。
動態(tài)地給一個對象添加一些額外的職責(zé),即增加其額外的功能。
將類的抽象部分和它的實(shí)現(xiàn)部分分離開來,使它們可以獨(dú)立地變化。它是用聚合關(guān)系代替繼承關(guān)系來實(shí)現(xiàn)的,從而降低了抽象和實(shí)現(xiàn)這兩個可變維度的耦合度。
將一個類的接口轉(zhuǎn)換成用戶希望得到的另一種接口。它使原本不相容的接口得以協(xié)同工作。1、類適配器 2、對象適配器 3、接口適配器模式(缺省適配器模式)使用情形:當(dāng)不需要全部實(shí)現(xiàn)接...
將一個復(fù)雜類的表示與其構(gòu)造相分離,使得相同的構(gòu)建過程能夠得出不同的表示。四個核心角色:產(chǎn)品、抽象建造者、具體建造者,指揮者
用一個已經(jīng)創(chuàng)建的實(shí)例作為原型,通過復(fù)制該原型對象來創(chuàng)建一個和原型相同或相似的新對象。在這里,原型實(shí)例指定了要創(chuàng)建的對象的種類。用這種方式創(chuàng)建對象非常高效,根本無須知道對象創(chuàng)建...
抽象工廠模式相對于工廠方法模式來說,就是工廠方法模式是針對一個產(chǎn)品系列的,而抽象工廠模式是針對多個產(chǎn)品系列的,即工廠方法模式是一個產(chǎn)品系列一個工廠類,而抽象工廠模式是多個產(chǎn)品...
工廠方法模式(FACTORY METHOD)是一種常用的類創(chuàng)建型設(shè)計(jì)模式,此模式的核心精神是封裝類中變化的部分,提取其中個性化善變的部分為獨(dú)立類,通過依賴注入以達(dá)到解耦、復(fù)用...