首页 > 代码库 > iOS设计模式 - 命令

iOS设计模式 - 命令

iOS设计模式 - 命令

技术分享

 

原理图

技术分享

 

说明

命令对象封装了如何对目标执行指令的信息,因此客户端或调用者不必了解目标的任何细节,却仍可以对他执行任何已有的操作。通过把请求封装成对象,客户端可以把它参数化并置入队列或日志中,也能够支持可撤销操作。命令对象将一个或多个动作绑定到特定的接收器。命令模式消除了作为对象的动作和执行它的接收器之间的绑定。

 

 

//
//  Invoker.h
//  CommandPattern
//
//  Created by YouXianMing on 15/10/17.
//  Copyright ? 2015年 YouXianMing. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "CommandProtocol.h"

@interface Invoker : NSObject

/**
 *  单例
 *
 *  @return 单例
 */
+ (instancetype)sharedInstance;

/**
 *  添加并执行
 *
 *  @param command 命令
 */
- (void)addAndExecute:(id <CommandProtocol>)command;

@end
//
//  Invoker.m
//  CommandPattern
//
//  Created by YouXianMing on 15/10/17.
//  Copyright ? 2015年 YouXianMing. All rights reserved.
//

#import "Invoker.h"

@interface Invoker ()

@property (nonatomic, strong) NSMutableArray *commandQueue;

@end

@implementation Invoker

+ (instancetype)sharedInstance {

    static Invoker        *sharedInstanceValue = http://www.mamicode.com/nil;>
//
//  CommandProtocol.h
//  CommandPattern
//
//  Created by YouXianMing on 15/10/17.
//  Copyright ? 2015年 YouXianMing. All rights reserved.
//

#import <Foundation/Foundation.h>

@protocol CommandProtocol <NSObject>

@required
/**
 *  执行指令
 */
- (void)execute;

@end

 

细节

技术分享

iOS设计模式 - 命令