中介模式

设计模式/行为型设计模式

简述

使用中介者模式来集中相关对象之间复杂的沟通和控制方式,使得这些对象不必相互明显引用

UML图

代码

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
public interface AnimalUse {
void play();

void food();
}

@Slf4j
public class CatUse implements AnimalUse {
@Override
public void play() {
log.debug(“公共玩具 — “);
}

@Override
public void food() {
log.debug(“猫粮--");
}
}

// 抽象中介者
public interface AnimalMediator {

void media(Animal animal);
}

// 猫的中介
public class CatMediator implements AnimalMediator {
private AnimalUse animalUse;

public CatMediator(AnimalUse animalUse) {
this.animalUse = animalUse;
}

@Override
public void media(Animal animal) {
animal.run();
animalUse.food();
animalUse.play();
}
}

// 客户端
public class Client {
public static void main(String[] args) {
Animal cat = new Cat();
Animal dog = new Dog();
AnimalUse catUse = new CatUse();
AnimalUse dogUse = new DogUse();
CatMediator catMediator = new CatMediator(catUse);
catMediator.media(cat);
}
}