iOS App设计模式开发中策略模式的实现示例

2020-01-14 22:21:13于丽
易采站长站为您分析iOS App设计模式开发中策略模式的实现示例,例子采用传统的Objective-C语言编写,需要的朋友可以参考下  

这次介绍一下策略模式(Strategy Pattern),相比之下是一种比较简单的模式。它也叫政策模式(Policy Pattern)。 策略模式使用的就是面向对象的继承和多态机制,其他的没有什么玄机。策略模式适合使用在: 1. 多个类只有在算法或行为上稍有不同的场景。 2. 算法需要自由切换的场景。 3. 需要屏蔽算法规则的场景。 使用策略模式当然也有需要注意的地方,那么就是策略类不要太多,如果一个策略家族的具体策略数量超过4个,则需要考虑混合模式,解决策略类膨胀和对外暴露问题。在实际项目中,我们一般通过工厂方法模式来实现策略类的声明。

下面我们就来具体讲解一下策略模式。

策略模式定义:

Define a family of algorithms, encapsulate each one, and make them interchangeable.(定义一组算法,将每个算法都封装起来,并且是它们之间可以互换。)

下面我把策略模式的类层次结构图展示如下:

iOS,App,设计模式,策略模式

如图所示,Strategy类层次为Context定义了一系列的可供重用的算法和行为,继承有助于析取出这些算法中的公共功能。下面我用一个普通超市里收费的例子简单模拟了这个模式。我把其中对应的类介绍一下:

Context类———————————CashContext类
Strategy类———————————–CashSuper类
ConcreteStrategyA类—————-CashNormal类
ConcreteStrategyB类—————-CashRebate类
ConcreteStrategyC类—————-CashReturn类
好的,上面就是将要向大家展示的Objective C源代码类。

下面,我把上面对应的类展示出来,供大家参考:

注意:本文所有代码均在ARC环境下编译通过。

CashContext类接口