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

2020-01-15 13:00:43于丽

相对来说,缺点也很明显。由于ConcreteMediator控制了集中化,于是就把交互复杂性变为了中介者的复杂性,这就使得中介者会变得比任何一个ConcreteColleage都复杂。所以一旦ConcreteMediator崩溃,那么整个系统都会受到影响。

还是那句老话,世上没有银弹,合适的就是最好的!

下面给大家简单展示一下具体实现。

注意:本文所有代码均在ARC环境下编译通过。

Mediator类接口

复制代码
#import <Foundation/Foundation.h>

 

@class Colleague;
@interface Mediator :NSObject
-(void)Send:(NSString*)message
           :(Colleague*)colleague;
@end


Mediator类实现
复制代码
#import "Mediator.h"

 

@implementation Mediator
-(void)Send:(NSString *)message :(Colleague *)colleague{
    return;
}
@end


Colleague类接口
复制代码
#import <Foundation/Foundation.h>

 

@class Mediator;
@interface Colleague :NSObject{
    Mediator *myMediator;
}
-(Colleague*)MyInit:(Mediator*)mediator;
@end


Colleague类实现
复制代码
#import "Colleague.h"

 

@implementation Colleague
-(Colleague*)MyInit:(Mediator *)mediator{
    if (self == [super init]) {
        myMediator = mediator;
    }
    return self;
}
@end


ConcreteMediator类接口
复制代码
#import "Mediator.h"

 

@class ConcreteColleague1;
@class ConcreteColleague2;
@interface ConcreteMediator :Mediator
@property ConcreteColleague1*colleague1;
@property ConcreteColleague2*colleague2;
@end


ConcreteMediator类实现
复制代码
#import "ConcreteMediator.h"
#import "ConcreteColleague1.h"