设计模式:策略模式

发布时间:2021-10-04 21:10:11 阅读:(113)

    策略模式

    什么是策略模式

    定义一系列算法,将每个算法都封装起来,并且使他们之间可以相互替换。策略模式使算法可以独立于使用它的用户而变化

    核心思想

    对算法、规则进行封装,使得替换算法和新增算法更加灵活

    设计要点

    • 上下文环境:起着承上启下的封装作用,屏蔽上层应用对策略(算法)的直接访问,封装可能存在的变化
    • 策略的抽象:策略(算法)的抽象类,定义统一的接口,规定每个子类必须实现的方法
    • 具备的策略:策略的具体实现者,可以有多个不同的(算法或规则)实现

    优缺点

    优点:

    • 算法(规则)可自由切换
    • 避免使用多重条件判断
    • 方便拓展和增加新的算法(规则)

    应用场景

    • 如果一个系统里有许多类,他们之间的区别仅在于有不同的行为,那么可以使用策略模式动态地让一个对象在许多行为中选择一种
    • 一个系统需要动态地在几种算法中选择一种
    • 设计程序接口时希望部分内部实现由调用方自己实现