国产探花免费观看_亚洲丰满少妇自慰呻吟_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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临澧县| 安图县| 犍为县| 武威市| 静安区| 商丘市| 德江县| 建德市| 昭通市| 南宫市| 阳谷县| 巫山县| 宜川县| 萨迦县| 彝良县| 紫金县| 隆回县| 沁阳市| 同江市| 新源县| 景德镇市| 滁州市| 伽师县| 普宁市| 石楼县| 武功县| 大余县| 中西区| 法库县| 巨野县| 永川市| 麟游县| 松原市| 富裕县| 桃园市| 呈贡县| 河间市| 梓潼县| 永修县| 都江堰市| 黄山市|