包含要素: Vistor:抽象訪問者堡僻,為每一個element元素聲明一個方法 ConcreteVistor:具體訪問者 Element:抽象元素 ConcreteElemen...
包含要素: AbstractClass:抽象類糠惫,規(guī)定模板 ConcreteClass:具體實(shí)現(xiàn)類,實(shí)現(xiàn)模板中的具體實(shí)現(xiàn)步驟 示例demo:我們外賣點(diǎn)飯和點(diǎn)下午茶的流程都是一樣...
包含要素: Context:封裝對策略的調(diào)用 Strategy:抽象策略 ConcreteStrategy:具體策略 示例demo:我們現(xiàn)在買東西支付時(shí)钉疫,可以使用支付寶支付硼讽,...
使用場景:狀態(tài)和行為比較復(fù)雜時(shí),為了避免大量if else牲阁,可以使用狀態(tài)模式固阁。 包含要素: Context:環(huán)境類,包含一些內(nèi)部狀態(tài) State:抽象狀態(tài)類 Concrete...
觀察者模式也被稱為發(fā)布-訂閱模式 包含要素: Subject:目標(biāo) Observer:觀察者 ConcreteSubject:具體目標(biāo)城菊,維護(hù)觀察者列表备燃,并可以添加刪除通知觀察...
使用場景:可以使系統(tǒng)恢復(fù)到某一特定的歷史狀態(tài) 包含要素: Originator:原發(fā)器,創(chuàng)建一個備忘錄凌唬。 Memento:備忘錄并齐,用于存儲Originator的內(nèi)部狀態(tài) Ca...
使用場景:如果一個類調(diào)用另一個類中的方法,可以通過第三方轉(zhuǎn)發(fā)這個調(diào)用客税,在復(fù)雜系統(tǒng)中况褪,使用中介者模式,可以減少對象之間的聯(lián)系更耻,降低耦合测垛。 包含角色: Mediator:抽象中介...
使用場景:現(xiàn)在集合中已經(jīng)提供了迭代器,所以一般不需要自己開發(fā)秧均。 包含角色: Iterator:抽象迭代器 ConcreteIterator:具體迭代器 Aggragate:抽...
應(yīng)用場景:根據(jù)規(guī)定語法進(jìn)行解析(解釋器模式用的比較少)食侮。 包含要素: AbstractExpression:抽象表達(dá)式 TerminalExpression:終結(jié)符表達(dá)式(運(yùn)...
使用場景:發(fā)送者和接收者完全解耦号涯,發(fā)送者不關(guān)心具體實(shí)現(xiàn),只需要發(fā)送命令給調(diào)用者锯七,由調(diào)用者來傳達(dá)給具體的接收者链快。 包含要素: Command:抽象命令類 ConcreteCom...
應(yīng)用場景:如果一個任務(wù)包含多步,且上一步通過才能進(jìn)入下一步 包含要素: Handler:抽象處理者 ConcreteHandler:具體處理者 Client:客戶端類 示例d...
應(yīng)用場景:代理對象控制對原有對象的引用起胰,連接客戶端和目標(biāo)對象 包含要素: Subject:抽象角色久又,真實(shí)對象和代理對象的共同接口 Proxy:代理角色,代理對象和真實(shí)對象實(shí)現(xiàn)...
使用場景:細(xì)粒度共享對象的池化效五。String常量池地消,線程池等都是享元模式的應(yīng)用。 組成要素: Flyweight:抽象享元角色 ConcreteFlyweight:具體享元角...
應(yīng)用場景:對外提供一個門面畏妖,封裝對子系統(tǒng)的調(diào)用脉执,客戶端只需要通過門面進(jìn)行訪問。 包含要素: Facade:外觀角色 SystemSub:子系統(tǒng)角色 實(shí)例demo:
應(yīng)用場景:動態(tài)的給一個對象增加額外的職責(zé)戒劫,裝飾者模式比子類繼承更為靈活半夷。 組成要素: Component:抽象構(gòu)件 ConcreteComponent:具體構(gòu)件,被裝飾的對象...
使用場景:將對象組合成樹形結(jié)構(gòu)來描述部分-整體的層次結(jié)構(gòu)迅细,使得用戶對單個對象和組合對象的使用具有一致性巫橄。 包含要素: Component:葉子節(jié)點(diǎn)和非葉子節(jié)點(diǎn)的共同點(diǎn)的抽象 ...