//联系人:石虎QQ:1224614774昵称:嗡嘛呢叭咪哄
一、策略设计模式 简介
1.概念:
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
2.应用场景:
*一个类在执行中使用多个if-else来决定行为。
*需要算法的各种变体。
*对客户隐藏具体策略(算法)的实现细节,彼此完全独立。
二、提出问题
1.如果想封装一些算法,不想让算法直接暴露出来?或者项目里面的一些if-else过于复杂,每个else里都有很多的算法代码,这些算法可能是一些相似的函数或者方法?
2.如果能把每个算法封装成一个对象,那么就能消除根据类型决定使用什么算法的一些if-else语句,可以考虑使用策略设计模式。
三、策略模式的优缺点
优点:
1、提供了管理相关的算法族的办法。可以封装一些算法,不想让算法直接暴露出来。
2、可以避免使用多重条件转移语句,消除根据类型决定使用什么算法的一些if-else的语句。
缺点:
1、使用之前必须知道所有的策略,使用中不能动态改变,在实例话的时候就设定好需要使用的策略类了。