• 策略模式-Strategy


    策略模式:它将可变的部分从程序中抽象分离成算法接口,在该接口下分别封装一系列算法实现。

      它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到实用算法的客户。

    策略模式类图:

    实现方式:

    1. 分离变化得到策略接口strategy
    2. 编写strategy的具体实现类
    3. 将srategy聚合到使用策略的类中
    4. 根据具体的场景传入stratugy的不同实现

    代码实现:

    策略模式的设计原则:

      找出应用中需要变化的部分,把他们独立出来,不要和那些不需要变化的代码混在一起。(封装变化)

      面向接口,而不是面向编程实现

      Favor composition over inheritance

    策略模式的优缺点:

      优点:

        使用了聚合的方式,使架构更加灵活

        富有弹性,可以较好的应对变化(开闭原则)

        更好的代码复用性(相对于继承)

      缺点:

        客户端代码需要了解每个策略的实现细节

        增加了对象的数目

    策略模式的适用场景:

      许多相关的类仅仅是行为差异

      运行时选取不同的算法变体

      通过条件在多个分支中选取一

     

  • 相关阅读:
    Python变量常量命名
    代码格式
    Python 输入输出
    数据源
    LaTeX Test
    软件工程
    eclipse-智能提示设置
    java代码里设置指定颜色常值
    命令行中Vim直接打开某行
    Vim里快速替换命令
  • 原文地址:https://www.cnblogs.com/LionheartCGJ/p/6883769.html
Copyright © 2020-2023  润新知