• 设计模式课程 设计模式精讲 19-1 策略模式讲解



    1    课程讲解

    1.1  类型:

    1.2  定义:

    1.3  适用场景:

    1.4  优点:

    1.5  缺点:

    1.6  其他特性:

    1.7  与其他设计模式关系:


    1    课程讲解
    1.1  类型:

    行为型

    1.2  定义:

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

    扩展:

    使用算法的用户就是应用层,我们把不同的算法封装到不同的类中,让她们之间可以相互替换。

    如田忌赛马,满减等

    大量的if else可以消除掉,

    1.3  适用场景:

    系统有很多类,而他们的区别仅仅在于他们的行为不同

    一个系统需要动态地在几种算法中选择一种

    扩展:把对象的不同行为放到不同的类中,她有很多行为类,每一种类对应每一种行为。

    如:两个数 加法策略,减法策略,乘法策略,除法策略等等

    1.4  优点:

    开闭原则
    避免使用多重条件转移语句(if else switch)
    提高算法的保密性和安全性

    1.5  缺点:

    客户端必须知道所有的策略类,并自行决定使用哪一个策略类。
    产生很多策略类

    1.6  其他特性

    多态和策略模式的区别

    多态是面向对象的特性,这是两个不同层面的概念。在java里面,你看到的策略模式的就是利用了面向对象的多态特性实现的而已

     

    1.7  与其他设计模式关系:

    ◆策略模式和工厂模式

    后者是创建型的,前者是行为型的。

    后者接收指令,创建出符合要求的对象,前者接收已经创建好的对象,从而实现不同的行为。


    ◆策略模式和状态模式

    前者客户端需要知道我们使用的哪个策略,后者客户端不需要知道具体的状态,且状态会自动转换。

  • 相关阅读:
    WINDOWS 远程桌面不能直接拷贝文件问题
    Spring的xml文件详解
    xml名称空间详解
    markdown基本语法
    web.xml文件详解
    Spring事务的7中传播行为
    docker修改容器配置文件
    Load balancer does not have available server for client: CLOUD-PROVIDER-HYSTRIX-PAYMENT
    layui导出表格的两种方法
    解决:Error:java: 无效的源发行版: 12
  • 原文地址:https://www.cnblogs.com/1446358788-qq/p/11602525.html
Copyright © 2020-2023  润新知