3 策略模式

作者: 笑Skr人啊 | 来源:发表于2020-01-10 13:57 被阅读0次

    1 简介

    本质
      根据指定条件调用接口的相应实现类中的方法
    
    定义
      策略模式定义算法家族,分别封装,算法之间可相互替换
    
    意义
      此模式让算法的变化对使用算法的客户无影响
    
    实现
      定义一个接口,为多个实现类提供公用方法,不同实现类中,实现不同的逻辑  
    
    优点
      策略模式提供相同行为的不同实现
      策略模式支持开闭原则
      策略模式把算法的使用放到环境类,算法的实现移到具体策略类,实现了二者的分离。
    
    缺点
      调用者必须理解所有策略算法
      策略类较多
    

    2 UML图介绍

    2.1 实现(implements)

    实现
    实现用 空三角+虚线 表示
    
    当一个类实现一个接口时,用实现
    
    大雁实现飞翔接口

    2.2 聚合

    聚合
    聚合表示弱的拥有关系
    
    体现 A对象包含B对象,但B对象不是A对象的一部分
    
    大雁聚合成雁群

    3 策略模式UML图

    策略模式

    4 代码

    git
        https://github.com/3748/java.git
    
    package
        com.java.design.pattern.behavior.strategy
    

    5 策略模式与简单工厂结合使用

    git
        https://github.com/3748/java.git
    
    package
        com.java.design.pattern.behavior.strategy.simple.factory
    
    缺点
      不符合开闭原则(因为 简单工厂不符合开闭原则)
    

    6 使用反射解决不符合开闭原则问题

    git
        https://github.com/3748/java.git
    
    package
        com.java.design.pattern.behavior.strategy.simple.factory.optimize
    

    相关文章

      网友评论

        本文标题:3 策略模式

        本文链接:https://www.haomeiwen.com/subject/fqwpactx.html