相对来说,缺点也很明显。由于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"










