行为型设计模式.策略模式

概念理解

  • 定义:定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。让算法独立于使用它的客户而变化,即一个类的行为或其算法可以在运行时更改。

    行为型设计模式.策略模式_第1张图片
    Strategy.png

    Context: 环境类,算法的使用者
    Strategy: 抽象策略类
    ConcreteStrategy: 具体策略类,具体的算法设计中和执行者

应用和优缺点

  • 解决的问题:
    1、在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护。
    2、一个系统有许多许多类,而区分它们的只是他们直接的行为。

  • 使用实例:
    1、日志文件的本地存储方案,文件、数据库等
    2、旅游出行交通方案,自行车、飞机、动车等

  • 优点:
    1、提供一种管理相关的算法族的办法,可以灵活扩展算法,符合开闭原则
    2、避免使用多重条件 if...else 判断
    3、扩展性良好。

  • 缺点:
    1、策略类会增多,可以结合享元模式进行优化
    2、策略类对外暴露,即客户端必须知道所有的策略类,并自行决定使用哪一个策略类

你可能感兴趣的:(行为型设计模式.策略模式)