策略模式( Strategy Pattern) 也叫做政策模式(Policy Pattern)

文档地址:《设计模式之禅》​​​​​​​

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

通用类图:

                策略模式( Strategy Pattern) 也叫做政策模式(Policy Pattern)_第1张图片

                 ● Context封装角色

                        它也叫做上下文角色, 起承上启下封装作用, 屏蔽高层模块对策略、 算法的直接访问,装可能存在的变化。

                ● Strategy抽象策略角色

                        策略、 算法家族的抽象, 通常为接口, 定义每个策略或算法必须具有的方法和属性。

                ● ConcreteStrategy具体策略角色

                        实现抽象策略中的操作, 该类含有具体的算法。

优点:

                 ● 算法可以自由切换

                 ● 避免使用多重条件判断

                 ● 扩展性良好

缺点:

                 ● 策略类数量增多

                 ● 所有的策略类都需要对外暴露

使用场景:

                ● 多个类只有在算法或行为上稍有不同的场景。

                ● 算法需要自由切换的场景。

                ● 需要屏蔽算法规则的场景。

你可能感兴趣的:(设计模式)