iOS应用设计模式开发中职责链(责任链)模式的实现解析

2020-01-15 13:07:43王冬梅

-(void)HandleRequest:(int)request;
@end
ConcreteHandler1类实现

#import "ConcreteHandler1.h"

@implementation ConcreteHandler1
-(void)HandleRequest:(int)request{
    if (request >=0 && request <10) {
        NSLog(@"ConcreteHandler1处理%d", request);
    }
    else if (mySuccessor !=nil) {
            [mySuccessor HandleRequest:request];
    }
}
@end


ConcreteHandler2类接口
复制代码
#import "Handlers.h"

 

@interface ConcreteHandler2 :Handlers
@end


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

 

@implementation ConcreteHandler2
-(void)HandleRequest:(int)request{
    if (request >=10 && request <20) {
        NSLog(@"ConcreteHandler2处理%d", request);
    }
    else if(mySuccessor !=nil) {
        [mySuccessor HandleRequest:request];
    }
}
@end


ConcreteHandler3类接口
复制代码
#import "Handlers.h"

 

@interface ConcreteHandler3 :Handlers
@end


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

 

@implementation ConcreteHandler3
-(void)HandleRequest:(int)request{
    if (request >=20 && request <30) {
        NSLog(@"ConcreteHandler3处理%d", request);
    }
    else if (mySuccessor !=nil) {
        [mySuccessor HandleRequest:request];
    }
}
@end


Main方法调用
复制代码
#import <Foundation/Foundation.h>

 

int main(int argc,const char * argv[])
{