![240](https://cdn2.jianshu.io/assets/default_avatar/9-cceda3cf5072bcdd77e8ca4f21c40998.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
定義了一系列的算法拳芙,并將每一個(gè)算法封裝起來(lái)邦投,而且使它們還可以相互替換共耍。策模式讓算法獨(dú)立于使用它的客戶而獨(dú)立變化。 角色: Context:環(huán)境角...
把請(qǐng)求從鏈中的一個(gè)對(duì)象傳到下一個(gè)對(duì)象柠新,直到請(qǐng)求被響應(yīng)為止。通過(guò)這種方式去除對(duì)象之間的耦合。
在不破壞封裝性的前提下栖袋,獲取并保存一個(gè)對(duì)象的內(nèi)部狀態(tài),以便以后恢復(fù)它抚太。
定義一個(gè)中介對(duì)象來(lái)簡(jiǎn)化原有對(duì)象之間的交互關(guān)系塘幅,降低系統(tǒng)中對(duì)象間的耦合度,使原有對(duì)象之間不必相互了解尿贫。 角色: IMediator:抽象中介者电媳,定...
多個(gè)對(duì)象間存在一對(duì)多關(guān)系,當(dāng)一個(gè)對(duì)象發(fā)生改變時(shí)庆亡,把這種改變通知給其他多個(gè)對(duì)象匾乓,從而影響其他對(duì)象的行為。
提供一種方法來(lái)順序訪問(wèn)聚合對(duì)象中的一系列數(shù)據(jù)身冀,而不暴露聚合對(duì)象的內(nèi)部表示钝尸。
在不改變集合元素的前提下,為一個(gè)集合中的每個(gè)元素提供多種訪問(wèn)方式搂根,即每個(gè)元素有多個(gè)訪問(wèn)者對(duì)象訪問(wèn)珍促。 角色: Visitor:抽象的訪問(wèn)者 Con...
將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,使發(fā)出請(qǐng)求的責(zé)任和執(zhí)行請(qǐng)求的責(zé)任分割開(kāi)剩愧。四個(gè)角色 Invoker:調(diào)用者角色 Command:命令角色猪叙,一般為接口或抽...
定義一個(gè)操作中的算法骨架,將算法的一些步驟延遲到子類中仁卷,使得子類在可以不改變?cè)撍惴ńY(jié)構(gòu)的情況下重定義該算法的某些特定步驟穴翩。