设计模式的分类
我们都知道有 23 种设计模式,这 23 种设计模式可分为如下三类:
- 创建型模式(5 种):单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。
- 结构型模式(7 种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
- 行为型模式(11 种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
设计模式系列文章传送门
什么是中介者模式
中介者模式(Mediator Pattern)是一种行为设计模式,它通过使用一个中介对象来封装一系列对象之间的交互方式,中介者使得各对象之间不需要显式地相互引用,从而降低对象之间的耦合度,使得系统可以更加灵活地进行维护和扩展,中介者模式的本质其实就是封装对象之间的交互过程。
中介者模式的组成部分
- 抽象中介者:定义了通用接口,用于与各个同事对象进行通信。这个接口通常包含了同事对象之间交互的方法。
- 具体中介者:实现了抽象中介者的接口,它包含了对各个同事对象的引用,并通过协调这些同事对象来实现具体的交互逻辑。
- 抽象同事类:定义了同事对象的接口,每个同事对象都需要实现这个接口,并且在接口中定义了同事对象与中介者进行通信的方法。
- 具体同事类:实现了抽象同事类的接口,每个具体同事类代表一个实际的对象,它们通过中介者来与其他同事对象进行交互。
中介者模式案例演示
中介者模式在生活中也有很多应用场景,例如物流公司、商家、用户等的场景,网购支付的场景,有支付宝、微信、云闪付支付,用户只需要发起支付,由支付平台调用支付宝、微信、云闪付支付,这其中支付平台就是中介者的角色,支付宝、微信、云闪付就是具体的同事类,下面我们使用代码来演示这个网购支付场景这个案例。
PayMediator(抽象中介者)
PayMediator 中介者定义了注册支付方式和付款的接口,具体代码如下:
public interface PayMediator {
//注册付款方式
void registerPayMethod(PayMethod payMethod);
//付款
void <