文章目录
1前言
策略模式在开发中也常常用到,当实现某一个功能时如支付功能时,支付功能可以有多种实现方式,比如微信支付、支付宝支付、一网通支付。再比如实现分享时也可以有多种策略,可以分享到QQ、微信、微博等社交平台。
在众多的实现方式中,可以将功能中涉及到的通用方法或策略提取出来,提供一个统一的接口,不同的算法或者策略有不同的实现类,这次在程序客户端就可以通过注入不同的实现对象来实现算法或者策略的动态策略,这种模式的可维护性、或扩展性更好。这就是本文要介绍的策略模式。
2.策略模式
2.1定义
策略模式定义了一系列的算法,并将每一个封装起来,而且使它们可以相互替换。策略模式让算法模式独立于使用它的客户而独立变化。
2.2 策略模式使用场景
- 针对同一类型的问题的多种处理方式,仅仅是具体行为有差别时。
- 需要安全地的封装多种同一类型的操作时。
- 出现同一抽象类有多个子类,而又需要
if-else
或者switch-case
来选择具体子类时。