溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

中介者(調(diào)停者)模式

發(fā)布時(shí)間:2020-08-06 16:51:05 來源:ITPUB博客 閱讀:185 作者:壹頁書 欄目:編程語言
http://www.cnblogs.com/java-my-life/archive/2012/06/20/2554024.html

中介者(調(diào)停者)模式



  1. interface Mediator {
  2.     /**
  3.      * 同事對(duì)象在自身改變的時(shí)候來通知調(diào)停者方法 讓調(diào)停者去負(fù)責(zé)相應(yīng)的與其他同事對(duì)象的交互
  4.      */
  5.     public void changed(Colleague c);
  6. }

  7. class ConcreteMediator implements Mediator {
  8.     // 持有并維護(hù)同事A
  9.     private ConcreteColleagueA colleagueA;
  10.     // 持有并維護(hù)同事B
  11.     private ConcreteColleagueB colleagueB;

  12.     public void setColleagueA(ConcreteColleagueA colleagueA) {
  13.         this.colleagueA = colleagueA;
  14.     }

  15.     public void setColleagueB(ConcreteColleagueB colleagueB) {
  16.         this.colleagueB = colleagueB;
  17.     }

  18.     @Override
  19.     public void changed(Colleague c) {
  20.         /**
  21.          * 某一個(gè)同事類發(fā)生了變化,通常需要與其他同事交互 具體協(xié)調(diào)相應(yīng)的同事對(duì)象來實(shí)現(xiàn)協(xié)作行為
  22.          */
  23.     }

  24. }

  25. abstract class Colleague {
  26.     // 持有一個(gè)調(diào)停者對(duì)象
  27.     private Mediator mediator;

  28.     /**
  29.      * 構(gòu)造函數(shù)
  30.      */
  31.     public Colleague(Mediator mediator) {
  32.         this.mediator = mediator;
  33.     }

  34.     /**
  35.      * 獲取當(dāng)前同事類對(duì)應(yīng)的調(diào)停者對(duì)象
  36.      */
  37.     public Mediator getMediator() {
  38.         return mediator;
  39.     }

  40. }

  41. class ConcreteColleagueA extends Colleague {

  42.     public ConcreteColleagueA(Mediator mediator) {
  43.         super(mediator);
  44.     }

  45.     /**
  46.      * 示意方法,執(zhí)行某些操作
  47.      */
  48.     public void operation() {
  49.         // 在需要跟其他同事通信的時(shí)候,通知調(diào)停者對(duì)象
  50.         getMediator().changed(this);
  51.     }
  52. }

  53. class ConcreteColleagueB extends Colleague {

  54.     public ConcreteColleagueB(Mediator mediator) {
  55.         super(mediator);
  56.     }

  57.     /**
  58.      * 示意方法,執(zhí)行某些操作
  59.      */
  60.     public void operation() {
  61.         // 在需要跟其他同事通信的時(shí)候,通知調(diào)停者對(duì)象
  62.         getMediator().changed(this);
  63.     }
  64. }



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI