详解iOS应用的设计模式开发中Mediator中介者模式的使用

2020-01-15 13:00:43于丽
易采站长站为您分析iOS应用的设计模式开发中Mediator中介者模式的使用,示例代码为传统的Objective-C语言,需要的朋友可以参考下  

何为中介者模式?

    面向对象的设计鼓励把行为分散到不同对象中,这种分散可能导致对象之间的相互关联。在最糟糕的情况下,所有对象都彼此了解并相互操作。

    虽然把行为分散到不同对象增强了可复用性,但是增加的相互关联又减少了获得的益处。增加的关联使得对象很难或不能在不依赖其他对象的情况下工作。应用程序的整体行为可能难以进行任何重大修改,因为行为分布于许多对象。于是结果可能是创建越来越多的子类,以支持应用程序中的任何新行为。

    中介者模式:用一个对象来封装一系列对象的交互方式。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

何时使用中介者模式?

1.对象间的交互虽定义明确然而非常复杂,导致一组对象彼此依赖而且难以理解。

2.因为对象引用了许多其他对象并与其通讯,导致对象难以复用。

3.想要定制一个分布在多个类中的逻辑或行为,又不想生成太多的子类。

中介者模式的实现示例:
下面先给出类结构图,再做简单解释。

iOS应用开发,设计模式,Mediator,中介者模式

中介者模式很容易在系统中引用,但是也比较容易误用。所以当系统出现了“多对多”交互复杂的对象群时,不要急于使用中介者模式,而要先反思系统在设计上是不是合理。

下面我们来说一说,中介者模式的优缺点。中介者的优点首先是Mediator的出现减少了各个Colleague的耦合,使得可以独立地改变和复用各个Colleague类和Mediator。其次,由于把对象如何协作进行了抽象,将中介作为一个独立的概念并将其封装在一个对象中,这样关注的对象就从对象各自本身的行为转移到它们之间的交互上来,也就是站在一个更宏观的角度去看待系统。