中介者模式:
定义一个接口用来封装一群对象的互动行为,中介者通过移除对象之间的引用,来减少它们之间的耦合度,并且能够改变它们之间的互动独立性
优点:
不会引入太多其它的系统
系统被依赖的程度也会降低
注意:
各个游戏系统和玩家界面必须通过中介者类(Mediator)来进行信息交换及沟通,Mediator类会因为担任过多中介者角色而容易出现操作接口爆炸的情况;因此在实现上,我们可以搭配其他设计模式来避免发生这种情况,比如事件系统
Colleague:
拥有一个Mediator属性成员,可以通过它来调用中介者的功能
ConcreteColleagueX:
实现Colleague界面的类,对于单一实现类而言,只会依赖一个Mediator接口
Mediator(中介者接口):
用来管理Colleague对象的接口
ConcreteMediator(中介者接口实现类)
ConcreteMediator实现类中包含所有ConcreteColleague的对象引用
ConcreteMediator类之间的互动会在ConcreteMediator中发生
Main:
结论:
中介者模式的优点是让系统之间的耦合度降低,提升系统的可维护性。但身为模式中的中介者角色类,也会存在着接口过大的风险,此时必须在配合其他模式来进行优化