美文网首页
策略模式在swift中的体现

策略模式在swift中的体现

作者: 梁森的简书 | 来源:发表于2021-12-01 15:07 被阅读0次

概念

策略模式属于行为模式,定义了一系列可以替换的对象,可在run time时设置或切换。可通过不同的策略实现不同的功能。

例子

在swift中我们定义一个协议,协议中有一个方法(策略),多个类可遵守该协议,并实现协议中的方法,但各自的具体实现不同。
使用不同的类,得到不同的结果。

想象这样一个场景:

从控制器A跳转到控制器B有多种情况,且不同的情况对应不同的结果。我们一般的做法是创建控制器B的时候传入一个type类型,在B中根据不同的type计算不同的结果。但这样做有两个问题:1. 如果情况再增加,我们需要更改B中的代码(违背了设计模式中的开闭原则)。 2. B中写了太多自己不需要知道的具体逻辑

使用策略模式的结果:
我们可以根据不同的情况创建对应的一个类,这个类遵守某个协议,并实现了协议中的方法,不同情况对应的不同结果都在多个类中实现的协议方法中分别实现。
这样设计遵守了设计原则中的开闭原则,同时具体不同的实现逻辑放到了不同的类中。

demo地址

https://github.com/pro648/BasicDemos-iOS/tree/master/StrategyPattern

相关文章

  • 策略模式在swift中的体现

    概念 策略模式属于行为模式,定义了一系列可以替换的对象,可在run time时设置或切换。可通过不同的策略实现不同...

  • 装饰模式在swift中的体现

    概念 给装饰对象指定一个原始对象,这样装饰对象既有自己原有的功能,又有了原始对象的功能。简单来说也可以这么理解,让...

  • 设计模式&架构模式

    设计模式:命令模式:ReactiveCocoa 的RACCommand实现MVVM策略模式:Swift 中的map...

  • 设计模式(Swift) - 单例模式、备忘录模式和策略模式

    设计模式(Swift) - 单例模式、备忘录模式和策略模式 设计模式(Swift) - 单例模式、备忘录模式和策略模式

  • 简单工厂模式在swift中的体现

    简单说就是通过一个对象创建出另一个对象。 实现方式 某个类有一个实例方法,该实例方法需要传一个对象类型的参数,返回...

  • 原型模式在swift中的体现

    通过对一个对象进行copy创建出一个新的对象。在swift中我们可以创建一个copying协议,某个类遵守该协议后...

  • 模版方法模式在swift中的体现

    概念 当我们要完成在某个细节层次一致的一个过程或者一系列步骤,但是其个别步骤的更详细的层次上实现可能不同时,我们通...

  • 抽象工厂模式在swift中的体现

    一个具体的工厂类遵守某个协议,并实现协议中的创建对象(产品)的方法,返回一个遵守了协议的具体的对象,当我们拿到这个...

  • 迭代器模式在swift中的体现

    概念 迭代器模式属于行为型模式,提供了循环集合的标准方法 例子 我们自己使用数组创建一个队列类,要想让这个队列类有...

  • 扫盲:策略模式,成事儿还需要策略

    什么是策略模式? 生活中的策略 策略模式在生活中体现很多。 我们要去旅游,我们可以选择不同的出行方式:飞机,火车,...

网友评论

      本文标题:策略模式在swift中的体现

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