设计模式-策略模式《十九》

作者: liyoucheng2014 | 来源:发表于2019-01-06 16:33 被阅读73次

何为策略模式

定义:定义一系列算法,把他们一个个封装起来,并且使他们可相互替换。
定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户

策略模式中的一个关键角色是策略类,它为所有支持的或相关的算法声明了一个共同接口。另外,还有使用策略接口来实现相关算法的具体策略类。场景(context)类的对象配置有一个具体策略对象的实例,场景对象使用策略接口调用由具体策略类定义的算法。静态关系图如下

CustomTextField及其相关InputValidator策略之间静态关系的类图

何时使用策略模式

1、 一个类在其操作中使用多个条件语句来定义许多行为。我们可以把相关的分支条件移到他们自己的策略类中。
2、需要算法的各种变体。
3、需要避免把复杂的、与算法相关的数据结构暴露给客户端。

使用步骤

  • 抽象一个策略
  • 继承抽象策略,并重载父类方法
  • 使用类声明策略属性、并调用策略方法

优缺点

  • 优点:if-else精简成一行代码,代码可维护性高
  • 缺点:使用前就确定策略模式,不能动态改变

验证器使用策略模式

策略模式

Objective-C项目地址

相关文章

网友评论

    本文标题:设计模式-策略模式《十九》

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