中介者模式---协调多个对象之间的交互。
简介:中介者模式利用一个中介者对象来封装一系列的对象交互,使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。又称为调停者模式。引入中介者对象,可以将系统的网状结构变成以中介者为中心的星型结构。
- Mediator抽象中介者:定义了同事对象到中介者对象的接口。
- ConcreteMediator具体中介者:为抽象中介者的子类,通过协调各个同事对象来实现协作行为,维持了对各个同事对象的引用。以一个集合来管理同事类,接受某个同事对象的消息,并完成相应的任务
- Colleague抽象同事类:定义了各个同事类公有的方法,并申明一些抽象方法来供子类实现,同时维持了一个对抽象中介者类的引用,其子类可以通过该引用来与中介者通信。
- ConcreteColleague具体同事类:为抽象同事类的子类,每一个同事对象在需要和其他同事对象通信时,先与中介者通信,通过中介者来间接完成与其他同事类的通信;在具体同事类中实现了再抽象同事类中声明的抽象方法。
需求:
- 智能家庭包括各种设备:闹钟,咖啡机,电视机,窗帘等
- 主人要看电视时,各个设备可以协同工作,自动完成看电视的准备工作,比如流程为:闹钟响起 -->咖啡机开始做咖啡-->窗帘自动落下-->电视机开始播放。