Java设计模式的策略模式简析

 更新时间:2023年12月04日 10:02:35   作者:制造bug的键盘钢琴师  
这篇文章主要介绍了Java设计模式的策略模式简析,策略模式中定义了一系列的算法族,算法族指的是类似于一系列的行为、策略,策略模式将一系列的行为封装成类,既可以说是将每一种相类似的行为都封装成一个类,也有可能存在特殊的不进行封装的行为,需要的朋友可以参考下

策略模式

1.定义:

策略模式定义了算法族,并分别进行封装,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的调用者。

简单解释一下:策略模式中定义了一系列的算法族,算法族指的是类似于一系列的行为、策略,策略模式将一系列的行为封装成类,既可以说是将每一种相类似的行为都封装成一个类(也有可能存在特殊的不进行封装的行为。)但最终都需要能够相互替换,也就是说各行为之间需要一定的共性,其需要实现共同的接口(或者说是有共同的方法)。还有需要注意的一个点,这些行为、算法的变化不能影响调用该行为的调用方,对于调用该使用行为的类来说是透明的。

2.主要解决(问题):

在有多种算法相似的情况下,使用if…else所带来的复杂和难以维护,将其有共性的算法进行封装,降低代码复杂度的同时使代码更易维护。

3.关键点:

实现同一个接口(既有同一个规范)

4.优点:

  • 算法可以自由切换。
  • 避免使用多重条件判断。
  • 扩展性良好

4.缺点:

  • 策略类相应增多。
  • 策略类都需对外暴露。

5.注意事项:

当一个系统的策略数量过多,多于四个则需要考虑使用混合模式,解决策略类膨胀的问题。

demo

共性接口:

在这里插入图片描述

开启命令行为:

在这里插入图片描述

关闭命令行为:

在这里插入图片描述

输出其余全部命令行为:

在这里插入图片描述

编写SpringBeanFactory工厂类

用以统筹管理实体对象:

在这里插入图片描述

策略模式执行实例(策略主体)

在这里插入图片描述

SystemCommdndEnum枚举【主要部分】

在这里插入图片描述

在这里插入图片描述

到此这篇关于Java设计模式的策略模式简析的文章就介绍到这了,更多相关Java策略模式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java打印从1到100的值(break,return断句)

    java打印从1到100的值(break,return断句)

    java 先写一个程序,打印从1到100的值。之后修改程序,通过使用break关键词,使得程序在打印到98时退出。然后尝试使用return来达到相同的目的
    2017-02-02
  • intellij idea中spring boot properties文件不能自动提示问题解决

    intellij idea中spring boot properties文件不能自动提示问题解决

    这篇文章主要介绍了intellij idea中spring boot properties文件不能自动提示问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Java实战在线选课系统的实现流程

    Java实战在线选课系统的实现流程

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用java+SSM+jsp+mysql+maven实现一个在线选课系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • java中用String.Join美化代码的实例讲解

    java中用String.Join美化代码的实例讲解

    在本篇文章里小编给大家整理的是一篇关于java中用String.Join美化代码的实例讲解内容,有需要的朋友们可以学习下。
    2020-12-12
  • Spring Data JPA调用存储过程实例代码

    Spring Data JPA调用存储过程实例代码

    本篇文章主要介绍了Spring Data JPA调用存储过程实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • SpringBoot应用快速部署到K8S的详细教程

    SpringBoot应用快速部署到K8S的详细教程

    这篇文章主要介绍了SpringBoot应用快速部署到K8S的详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 你真的了解Java的多线程方法吗

    你真的了解Java的多线程方法吗

    这篇文章主要为大家详细介绍了Java的多线程方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • window系统安装jdk jre的教程图解

    window系统安装jdk jre的教程图解

    java开发少不了安装jdk,jdk可以同时安装多个版本,只要在项目部署时注意切换版本选择,下面小编给大家带来了window系统安装jdk jre的教程图解,感兴趣的朋友一起看看吧
    2018-08-08
  • Spring监听器及定时任务实现方法详解

    Spring监听器及定时任务实现方法详解

    这篇文章主要介绍了Spring监听器及定时任务实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • java后台实现支付宝支付接口和支付宝订单查询接口(前端为APP)

    java后台实现支付宝支付接口和支付宝订单查询接口(前端为APP)

    这篇文章主要介绍了java后台实现支付宝支付接口和支付宝订单查询接口(前端为APP),非常具有实用价值,需要的朋友可以参考下
    2018-08-08

最新评论