java設計模式-終結者者模式

來源:互聯網
上載者:User

概述:

 用一個中介對象來封裝一系列的對象互動。中介者使各對象不需要顯式地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的互動。

適用性;

    1.一組對象以定義良好但是複雜的方式進行通訊。產生的相互依賴關係結構混亂且難以理解。    2.一個對象引用其他很多個物件並且直接與這些對象通訊,導致難以複用該對象。    3.想定製一個分布在多個類中的行為,而又不想產生太多的子類。
參與者:
    1.Mediator      中介者定義一個介面用於與各同事(Colleague)對象通訊。    2.ConcreteMediator      具體中介者通過協調各同事對象實現協作行為。      瞭解並維護它的各個同事。    3.Colleagueclass      每一個同事類都知道它的中介者對象。      每一個同事對象在需與其他的同事通訊的時候,與它的中介者通訊
類圖:
例子:
Mediator 
public abstract class Mediator {    public abstract void notice(String content);}
ConcreteMediator
public class ConcreteMediator extends Mediator {    private ColleagueA ca;        private ColleagueB cb;        public ConcreteMediator() {        ca = new ColleagueA();        cb = new ColleagueB();    }        public void notice(String content) {        if (content.equals("boss")) {            //老闆來了, 通知員工A            ca.action();        }        if (content.equals("client")) {            //客戶來了, 通知前台B            cb.action();        }    }}
Colleagueclass
public class ColleagueA extends Colleague {        public void action() {        System.out.println("普通員工努力工作");    }}
public class ColleagueB extends Colleague {    public void action() {        System.out.println("前台注意了!");    }}
Test
public class Test {    public static void main(String[] args) {        Mediator med = new ConcreteMediator();        //老闆來了        med.notice("boss");                //客戶來了        med.notice("client");    }}
result
普通員工努力工作前台注意了!

轉載自java設計模式(瘋狂java聯盟)


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.