美文网首页
策略模式在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中的体现

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