【学习设计模式】策略模式

简述什么是策略模式:它定义一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户端应用而独立变化。

策略模式适用场景:策略模式适合解决当程序出现多个不同分支,而且每个分支的逻辑还比较复杂的场景。
下面介绍策略模式都几个角色

  • Context(环境类):负责使用算法策略,其中维持了一个抽象策略类的引用实例。
    Strategy(抽象策略类):所有策略类的父类,为所支持的策略算法声明了抽象方法。=> 既可以是抽象类也可以是接口
    ConcreteStrategy(具体策略类):实现了在抽象策略类中声明的方法。
    【学习设计模式】策略模式代码比较简单就不贴了。
    但是中心思想是满足依赖倒置原则,面向接口编程,抽象出策略动作,然后不同策略内容不同实现,,再通过上下文传入调用的具体策略进行执行