美文网首页
iOS设计模式之命令模式(2.动态命令)

iOS设计模式之命令模式(2.动态命令)

作者: 项啊丑 | 来源:发表于2018-08-27 16:08 被阅读0次

    之前写的命令模式尽管优化了一次,但是还是觉得太复杂了,以后如果再添加更多的操作时,还是要新建更多的类,这样到后面就会出现一个开发中巨大的问题:类爆炸!

    无数个类挤在一起看着非常冗余,这时候有好的解决方案吗?

    答案肯定是有的,不然我也不会接着写这篇简书了。

    用什么呢?

    我们这次用block!

    用了block之后,命令模式就是变异了,但依然是命令模式,也就是命令模式的变种。

    闲话不多说,上干活

    首先,我们创建一个动态命令类

    然后做什么呢?

    我们要让这个动态命令类遵循之前的GameCommandProtocol协议

    遵循协议之后,我们还要创建一个block

    接着就是初始化了

    接下来的操作就有点不一样了,注意了

    看到这个类方法没!?

    这个就是我们外部调用并且回调的函数,它在内部已经帮我们初始化了,所以后面当要用到这个类的时候只需要调用它就行了

    第二步:我们再创建一个动态命令管理者的类

    这个类就是用来替代之前GameManager类

    内部方法大同小异,但是有个重点是之前没有的

    这个方法就是动态命令调用的核心

    通过方法名获取方法对象,然后调用createCommand这个方法,顺便将该对象存入数组中,这几句代码需要大家好好研究下

    剩下的步骤就很简单了,调用方法就行了

    这时候我们的main函数里面是怎么样的呢?

    这个是不是更简单了

    不用new各种类的对象,代码简单明了

    最后附上demo链接:命令模式demo

    下一篇介绍复合命令:iOS设计模式之命令模式(3.复合命令) - 简书

    相关文章

      网友评论

          本文标题:iOS设计模式之命令模式(2.动态命令)

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