国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java設計模式之中介者模式(Mediator Pattern)簡介

2019-11-26 15:28:01
字體:
來源:轉載
供稿:網友

Java設計模式的中介者模式是行為模式之一。定義一個中介對象來封裝系列對象之間的交互。中介者使各個對象不需要顯式地相互引用,從而使其耦合性松散,并且可以獨立地改變他們之間的交互。

如下圖所示:

生產者、消費者、代理商之間的中介模式實例:

public abstract class PersonColleague{  protected Mediator mediator;  public Mediator getMediator()  {    return mediator;  }  public void setMediator(final Mediator mediator)  {    this.mediator = mediator;  }  protected abstract void message(String context);}public class Mediator{  private PersonColleague consumer = null;  private ProducerColleague producer = null;  public ProducerColleague getProducer()  {    return producer;  }  public void setProducer(final ProducerColleague producer)  {    this.producer = producer;  }  public PersonColleague getConsumer()  {    return consumer;  }  public void setConsumer(final PersonColleague consumer)  {    this.consumer = consumer;  }  public Mediator()  {  }  public synchronized void message(final String context)  {    if (consumer != null)    {      System.out.println(context);    }    else if (producer != null)    {      System.out.println(context);    }  }}public class ConsumerColleague extends PersonColleague{  public ConsumerColleague(final Mediator mediator)  {    this.mediator = mediator;  }  @Override  protected void message(final String context)  {    this.mediator.setConsumer(this);    this.mediator.message("hello! i am a consumer");  }}public class ProducerColleague extends PersonColleague{  public ProducerColleague(final Mediator mediator)  {    this.mediator = mediator;  }  @Override  protected void message(final String context)  {    this.mediator.setProducer(this);    this.mediator.message(context);  }}public class Client{  public static void main(final String[] args)  {    final Mediator mediator = new Mediator();    final PersonColleague person = new ConsumerColleague(mediator);    final PersonColleague person1 = new ProducerColleague(mediator);    person.message("I am a consumer");    person1.message("I am a producer");  }}

運行結果:

hello! i am a consumerI am a producer
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄大仙区| 新余市| 古浪县| 托克逊县| 盐山县| 孟村| 宁南县| 星座| 杭锦旗| 马龙县| 青海省| 桐城市| 上高县| 察哈| 嘉鱼县| 古丈县| 石台县| 张家川| 芦山县| 灌南县| 阿图什市| 霍邱县| 马龙县| 富蕴县| 浦县| 易门县| 温泉县| 博野县| 徐州市| 芜湖市| 松溪县| 米泉市| 惠来县| 平潭县| 万荣县| 广州市| 鹤峰县| 白河县| 长岭县| 舒城县| 苏尼特左旗|