Java 之 23 种设计模式解析——22、中介者模式(Mediator)

本文深入讲解中介者模式,探讨如何通过引入Mediator类降低对象间的耦合度,提高代码的可维护性和扩展性。通过具体实例,展示了User类与Mediator类的交互,以及如何在不修改对象的情况下调整其行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

22、中介者模式(Mediator)

 

中介者模式也是用来降低类类之间的耦合的,因为如果类类之间有依赖关系的话,不利于功能的拓展和维护,因为只要修改一个对象,其它关联的对象都得进行修改。如果使用中介者模式,只需关心和Mediator类的关系,具体类类之间的关系及调度交给Mediator就行,这有点像spring容器的作用。先看看图:

User类统一接口,User1和User2分别是不同的对象,二者之间有关联,如果不采用中介者模式,则需要二者相互持有引用,这样二者的耦合度很高,为了解耦,引入了Mediator类,提供统一接口,MyMediator为其实现类,里面持有User1和User2的实例,用来实现对User1和User2的控制。这样User1和User2两个对象相互独立,他们只需要保持好和Mediator之间的关系就行,剩下的全由MyMediator类来维护!基本实现:

1. public interface Mediator {
2.	public	void	createMediator();
3.	public	void	workAll();
4. }
1. public class MyMediator implements Mediator {
2.
3.	private User user1;
4.	private User user2;
5.
6.	public User getUser1() {
7.	return user1;
8.	}
9.
10.	public User getUser2() {
11.	return user2;
12.	}
13.
14.	@Override
15.	public void createMediator() {
16.	user1 = new User1(this);
17.	user2 = new User2(this);
18.	}
19.
20.	@Override
21.	public void workAll() {
22.	user1.work();
23.	user2.work();
24.	}
25. }
1. public abstract class User {
2.
3.	private Mediator mediator;
4.
5.	public Mediator getMediator(){
6.	return mediator;
7.	}
8.
9.	public User(Mediator mediator) {
10.	this.mediator = mediator;
11.	}
12.
13.	public abstract void work();
14. }

 

1. public class User1 extends User {    
2.
3.	public User1(Mediator mediator){
4.	super(mediator);
5.	}
6.
7.	@Override
8.	public void work() {
9.	System.out.println("user1 exe!");
10.	}
11. }

 

1. public class User2 extends User {
2.
3.	public User2(Mediator mediator){
4.	super(mediator);
5.	}
6.
7.	@Override
8.	public void work() {
9.	System.out.println("user2 exe!");
10.	}
11. }

测试类:

1. public class Test {
2.
3.	public static void main(String[] args) {
4.	Mediator mediator = new MyMediator();
5.	mediator.createMediator();
6.	mediator.workAll();
7.	}
8. }

输出:

user1 exe!
user2 exe!

目录:(点击进入相应页面)

概述、六大原则

一、创建模式

0、简单工厂模式

1.工厂方法模式(Factory Method)

2、抽象工厂模式

3、单例模式(Singleton)

4、建造者模式(Builder)

5、原型模式(Prototype)

二、结构模式(7种)

6、适配器模式

7、装饰模式(Decorator)

8、代理模式(Proxy)

9、外观模式(Facade)

10、桥接模式(Bridge)

11、组合模式(Composite

12、享元模式(Flyweight)

三、关系模式(11种)

13、策略模式(strategy)

14、模板方法模式(Template Method)

15、观察者模式(Observer)

16、迭代子模式(Iterator)

17、责任链模式(Chain of Responsibility)

18、命令模式(Command)

19、备忘录模式(Memento

20、状态模式(State)

21、访问者模式(Visitor)

22、中介者模式(Mediator)

23、解释器模式(Interpreter)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值