博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS设计模式 - 命令
阅读量:5280 次
发布时间:2019-06-14

本文共 1570 字,大约阅读时间需要 5 分钟。

iOS设计模式 - 命令

 

原理图

 

说明

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

 

 

////  Invoker.h//  CommandPattern////  Created by YouXianMing on 15/10/17.//  Copyright © 2015年 YouXianMing. All rights reserved.//#import 
#import "CommandProtocol.h"@interface Invoker : NSObject/** * 单例 * * @return 单例 */+ (instancetype)sharedInstance;/** * 添加并执行 * * @param command 命令 */- (void)addAndExecute:(id
)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 = nil;    static dispatch_once_t oncePredicate;        dispatch_once(&oncePredicate, ^{                sharedInstanceValue = [[Invoker alloc] init];        sharedInstanceValue.commandQueue = [NSMutableArray array];    });        return sharedInstanceValue;}- (void)addAndExecute:(id 
)command { // 添加并执行 [self.commandQueue addObject:command]; [command execute];}@end
////  CommandProtocol.h//  CommandPattern////  Created by YouXianMing on 15/10/17.//  Copyright © 2015年 YouXianMing. All rights reserved.//#import 
@protocol CommandProtocol
@required/** * 执行指令 */- (void)execute;@end

 

细节

转载于:https://www.cnblogs.com/ming1025/p/6656434.html

你可能感兴趣的文章
poj3255 Roadblocks 次短路
查看>>
Spring 3.0.5 MVC 基于注解ehcache.xml 配置方式
查看>>
Spark安装部署
查看>>
Environment.NewLine
查看>>
insert into 和 where not exists
查看>>
BZOJ4380: [POI2015]Myjnie
查看>>
ASP.NET中的多线程整理
查看>>
阶段总结
查看>>
Quartz.Net学习笔记(二) Jobs And Triggers
查看>>
java 注解
查看>>
砸砖块
查看>>
如何用启动界面给用户创造出色的第一印象
查看>>
.NET-记一次架构优化实战与方案-目录
查看>>
附加事件
查看>>
DRBD+Heratbeat+NFS高可用文件共享存储
查看>>
20145203盖泽双 反汇编代码实践
查看>>
阿里妈妈-RAP项目的实践(1)
查看>>
电子书下载:Game Programming Gems 2
查看>>
近期项目计划
查看>>
ssh 配置免密失败
查看>>