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

本文共 1506 字,大约阅读时间需要 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

细节

转载地址:http://wmdxx.baihongyu.com/

你可能感兴趣的文章
【前端】javascript判断undefined、null、NaN;字符串包含等
查看>>
玩转iOS开发 - 数据缓存
查看>>
李洪强-C语言3-数组
查看>>
C# 6.0的字典(Dictionary)的语法
查看>>
使用ShareSDK实现第三方授权登录、分享以及获取用户资料效果,项目中包含:源码+效果图+项目结构图...
查看>>
三级联动效果
查看>>
Sprite和UI Image的区别
查看>>
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql/mysql.sock' (2)
查看>>
python练习笔记——丑数的计算
查看>>
OpenCV + python 实现人脸检测(基于照片和视频进行检测)
查看>>
XSS 前端防火墙 —— 天衣无缝的防护
查看>>
Node.js umei图片批量下载Node.js爬虫1.00
查看>>
客户端拖动控件封装(让拖动变得更简单)
查看>>
linux下IPTABLES配置详解
查看>>
Sharepoint学习笔记—习题系列--70-576习题解析 -(Q131-Q134)
查看>>
iOS边练边学--iOS中的(ARC下)单粒模式(GCD实现)
查看>>
php get_magic_quotes_gpc()函数用法介绍
查看>>
SQL to Java code for Elasticsearch
查看>>
Java RMI之HelloWorld程序以及相关的安全管理器的知识
查看>>
FlatBuffers
查看>>