策略模式
(1)定义
定义一系列算法,把它们一个个封装起来,并且是它们可以相互替代,本模式使得算法可独立于使用它的客户而改变
(2)类图
Strategy类声明了它所支持的或相关的算法的一个共同接口。
ConcreteStrategyA(B\C)具体的策略类通过策略接口来实现相关的算法
Context类:context类的对象配置有一个具体策略对象的实例
场景对象通过策略接口调用由具体策略类定义的算法
(3)何时使用策略模式
*一个类在她的操作中使用很多条件语句来定义许多行为,可以考虑将相关条件语句一到他们自己的策略类中
*需要算法的各种变体
*需要避免把复杂的、与算法相关的数据结构暴露给客户端
(4) iOS框架中实现的装饰模式-分类(Category)和委托(Delegation)
在 Object-C 里有两个种非常常见的实现模式:分类(Category)和委托(Delegation)。