美文网首页
Objective-C命令模式

Objective-C命令模式

作者: 杭州凤梨 | 来源:发表于2017-05-07 11:36 被阅读0次
声明命令接口类
@protocol CommandProtocol <NSObject>

- (void)execute;

@end
声明&实现一个具体命令类
@interface ZDWLogNameConcreteCommand : NSObject <CommandProtocol>

- (instancetype)initWithReceiver:(ZDWUser *)receiver;

@end
@implementation ZDWLogNameConcreteCommand

- (instancetype)initWithReceiver:(ZDWUser *)receiver {
    if (self = [super init]) {
        self.user = receiver;
    }
    return self;
}

#pragma mark - CommandProtocol

- (void)execute {
    [self.user logName];
}

@end

命令接受者类

@interface ZDWUser : NSObject

- (void)logName;

@end

@implementation ZDWUser

- (void)logName {
    NSLog(@"%@",NSStringFromClass([ZDWUser class]));
}

@end

命令发送者类

@interface ZDWCommandInvoker : NSObject

@property (nonatomic, weak) id<CommandProtocol> command;

- (void)sendCommand;

@end

@implementation ZDWCommandInvoker

- (void)sendCommand {
    [self.command execute];
}

@end

Client

ZDWUser *user = [ZDWUser new];
    
    ZDWLogNameConcreteCommand *command = [[ZDWLogNameConcreteCommand alloc] initWithReceiver:user];
    ZDWCommandInvoker *invoker = [[ZDWCommandInvoker alloc] init];
    invoker.command = command;
    [invoker sendCommand];

如此便实现了命令发送者和接受者的完全解耦,二者只要通过命令对象来联系。不管接受者如何变化,只需要改变命令调用者的命令关联对象即可。客户端是面向命令调用者编程的,所以也不需要修改。

相关文章

  • Objective-C命令模式

    声明命令接口类 声明&实现一个具体命令类 命令接受者类 命令发送者类 Client 如此便实现了命令发送者和接受者...

  • Objective-C类族和工厂模式

    Objective-C类族和工厂模式 Objective-C类族和工厂模式

  • 12.vim的使用技巧

    命令模式 、命令行模式、编辑模式: INSERT 首次进入文件: 命令模式输入: 表示 命令行模式出现...

  • 五、Linux vim编辑器

    vim编辑器三种模式:命令模式、编辑模式、末行模式 1.命令模式: vim进入文件后就是命令模式 1.1 命令模式...

  • 终端操作文件

    VIM 模式切换从命令模式->编辑模式:i,a,o,I,A,O从编辑模式->命令模式:ESC从命令模式->末行模式...

  • vim 操作 && Mac 配置本地Apache

    一、vim 的基本命令操作 vim 的模式: 编辑模式 ,命令模式 编辑模式: 命令模式:可以通过命令 最重要的命...

  • Vim高效编辑器

    Vim程序员高效编辑器 命令模式,输入模式,底线命令模式 默认进入vim就是命令模式,输入i变为输入模式 命令模式...

  • Command模式

    命令模式(Command) 命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Tran...

  • 设计模式详解——命令模式

    本篇文章介绍一种设计模式——命令模式。本篇文章内容参考《JAVA与模式》之命令模式。 一、命令模式的概念 命令模式...

  • Vi编辑器

    命令模式 文本输入模式 末行模式。 插入模式 移动光标: 删除命令: 撤销命令: 重复命令 文本行移动: 复制粘贴...

网友评论

      本文标题:Objective-C命令模式

      本文链接:https://www.haomeiwen.com/subject/rtsutxtx.html