一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java設(shè)計模式之中介者模式(Mediator Pattern)簡介

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

2019-11-25 14:30shichen2014 Java教程

這篇文章主要介紹了Java設(shè)計模式之中介者模式(Mediator Pattern),需要的朋友可以參考下

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

如下圖所示:

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

生產(chǎn)者、消費者、代理商之間的中介模式實例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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");
  }
}

運行結(jié)果:

?
1
2
hello! i am a consumer
I am a producer

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男女拍拍拍免费视频网站 | 91香蕉国产在线观看免费永久 | 亚州性夜夜射在线观看 | 色哟哟久久| 日韩一区视频在线 | 成人中文字幕在线高清 | 王雨纯 羞羞 | 动漫精品午夜在线播放 | 动漫肉在线观看 | 3x3x3x短视频在线看 | 国产午夜久久精品 | 亚洲视频在线观看免费视频 | 美女牲交毛片一级视频 | 日本五级床片全都免费播放 | 美女脱一光二净的视频 | 国产成人免费a在线资源 | 久久综合网久久综合 | 天天综合色网 | 草莓香蕉绿巨人丝瓜榴莲18 | 欧美日韩精品乱国产538 | 日产欧产va1| 女教师被女同学调教成脚奴 | 草啪啪| 99av麻豆| 国产香蕉在线视频 | 国产青青草 | 91精品国产人成网站 | 九九精品视频在线播放 | 午夜AV亚洲一码二中文字幕青青 | 99久久免费视频 | 亚洲 欧美 国产 综合久久 | 久久久久九九 | 秋霞黄色网 | 我把校花黑色蕾丝胸罩脱了 | 成年人在线视频免费观看 | 高贵女王调奴vk | 亚洲精品在看在线观看 | 97视频免费人人观看人人 | 国产激情一区二区三区成人91 | 欧美日韩国产亚洲人成 | 国产hd老太婆 |