Spring项目整合过滤链模式~实战应用

代码下载

设计模式代码全部在gitee上,下载链接: https://gitee.com/xiaozheng2019/desgin_mode.git
在这里插入图片描述

日常写代码遇到的囧

1.新建一个类,不知道该放哪个包下

2.方法名称叫A,干得却是A+B+C几件事情,随时隐藏着惊喜

3.想复用一个方法,但是里面嵌套了多余的逻辑,只能自己拆出来,或者重新写一个

4.想调现有方法,但是参数太定制化,要传一些不相关的参数,很不爽,算了,自己写一个

5.每次新增功能,都只能在原来方法中改,但怕影响到旧流程,于是出绝招–加开关

6.想重构一个类,最后几十个类都有改动,有种拔个萝卜带出泥的感觉,为了影响最小,最后改成了四不像

7.超级接口,功能强大到不知道怎么用了

学习设计模式,就能完美解决上面问题吗?

不能,但可以增强写出好代码的意识

文章介绍

本文主要是给大家介绍一下在Spring中策略模式的应用。这里不会扯到策略模式的概念和用例图,实战实战,如果是想看理论的,可以让步,这篇文章对实战很友好哦~~~~~~

背景介绍

    有一天,领导对小郑说,有段SQL的过滤逻辑复杂,日常生产运维,需要查某某数据为什么没出现,被什么条件给过滤掉了。小郑同学,你能不能转化成Java代码,帮忙写个工具快速知道数据被什么过滤。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/70494.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

百川智能发布首个530亿参数闭源大模型,今年追上GPT-3.5

4月官宣创业,6月15日发布第一款7B开源模型,7月11日发布第二款13B、130亿参数开源模型。 平均保持2个月一个版本发布速度,8月8日,百川智能发布了创业以来的首个530亿参数闭源大模型——Baichuan-53B(以下简称“53B”&a…

Android Https

本质:在客户端和服务端使用非对称加密协商出一套对称密钥,每次发送数据前加密,收到后解密,达到加密传输 http ssl 在http之下增加了安全层,用于保障http的加密传输 HTTPS连接 TLS连接步骤 1.客户端发送 client h…

Ubuntu 20.04 安装 Stable Diffusionn

步骤 1:安装 wget、git、Python3 和 Python3虚拟环境(如果已安装可忽略这步骤) sudo apt install wget git python3 python3-venv步骤 2:克隆 SD 项目到本地 git clone https://github.com/AUTOMATIC1111/stable-diffusion-webu…

Could not resolve host: mirrorlist.centos.org; Unknown error解决方法

今天服务器安装完CentOS系统后,安装网络的时候,出现无法联网yum yum -y install net-tools 以上代码无法运行并报错,这里我要提醒大家,如果在初始安装的时候选中安装网络工具模块就不用在安装net-tools了,因为我选中…

C#在自动化领域的应用前景与潜力

人机界面(HMI)开发:使用C#开发人机界面软件,实现与自动化设备的交互和监控。C#的图形界面设计能力和丰富的控件库使得开发人员能够创建直观、易用的界面。 数据采集与处理:C#可以与各种传感器、设备进行数据通信和采集…

Elasticsearch之kibana相关命令

1.中文分词器相关命令 2.拼音分词器相关命令

资讯速递 | ArkUI-X 预览版已正式开源!

OpenHarmony项目群技术指导委员会(以下简称“TSC”)-跨平台应用开发框架TSG所孵化项目 —— ArkUI-X,近期已正式开源 ,开发者基于一套主代码,就可以将在OpenHarmony上开发的精美、高性能应用同时运行在Android、iOS等其…

21 | 朝阳医院数据分析

朝阳医院2018年销售数据为例,目的是了解朝阳医院在2018年里的销售情况,通过对朝阳区医院的药品销售数据的分析,了解朝阳医院的患者的月均消费次数,月均消费金额、客单价以及消费趋势、需求量前几位的药品等。 import numpy as np from pandas import Series,DataFrame impo…

成功解决ubuntu-22.04的sudo apt-get update一直卡在【0% [Waiting for headers]】

成功解决ubuntu-22.04的sudo apt-get update一直卡在【0% [Waiting for headers]】 问题描述解决方案 问题描述 在下载安装包的时候一直卡在0% [Waiting for headers],报错信息如下: Get:1 file:/var/cudnn-local-repo-ubuntu1804-8.5.0.96 InRelease […

C#随机法 双峰函数 求极值 避免落入局部最优解

避免落入局部最优解,只要让步长够长即可。 x1 resultX1 random1.NextDouble()*100; 如果后面不乘以100,则很大概率落入负数的最大值 Random random1 new Random(DateTime.Now.Millisecond);double x1 0, resultX10,max-999999,maxTemp0;for (int i …

开源语言模型的历史和重要性;Edge浏览器将推出Bing AI重写文本功能

🦉 AI新闻 🚀 微软即将推出桌面版Microsoft Edge浏览器的Bing AI重写文本功能 摘要:微软最近在桌面版Microsoft Edge浏览器中引入了一个新功能,允许用户使用Bing AI重写文本。用户可以选择不同的语气、格式和长度,然…

✅最新!自然指数中国科研机构百强名单,出炉!

【SciencePub学术】8 月 9 日,自然指数官网发布了最新的中国科研机构百强名单。名单根据各大机构2022年在自然科学领域的论文贡献份额进行排名。 其中,中国科学院以2053.76的论文贡献份额,位列榜首;中国科学院大学和中国科学技术…

[保研/考研机试] KY80 进制转换 北京大学复试上机题 C++实现

题目链接: KY80 进制转换https://www.nowcoder.com/share/jump/437195121691735660774 描述 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串(注意可能存在的一个测试用例里的多组数据)。 输入描述: 输…

Fast SAM与YOLOV8检测模型一起使用实现实例分割

Fast SAM与YOLOV8检测模型一起使用 部分源代码在结尾处可获取 晓理紫 1 使用场景 实例分割数据集的获取要比检测数据的获取更加困难,在已有检测模型不想从新标注分割数据进行训练但是又想获取相关物体的mask信息以便从像素级别对物体进行操作,这时就可以…

模拟实现消息队列项目(系列5) -- 服务器模块(虚拟主机)

目录 前言 1. 创建VirtualHost 1.1 定义虚拟主机的相关属性 1.2 VirtualHost 构造方法 1.3 交换机和队列的创建和删除 1.3.1 交换机操作 1.3.2 队列操作 1.4 绑定的创建和删除 1.5 发送消息到指定的队列/交换机 2. 实现路由规则Router 2.1 checkBindingKey() 2.2 checkRoutin…

【软件测试】接口测试工具APIpost

说实话,了解APIpost是因为,我的所有接口相关的文章下,都有该APIpost水军的评论,无非就是APIpost是中文版的postman,有多么多么好用,虽然咱也还不是什么啥网红,但是不知会一声就乱在评论区打广告…

springboot项目问题

目录标题 问题后端1.[mybatis报错Parameter start not found. Available parameters are [1, 0, param1, param2]](https://www.cnblogs.com/josephcnblog/articles/7077244.html) 知识后端1. [Select 数据表的字段与实体类的属性值](https://www.cnblogs.com/yanguobin/p/1191…

【SpringBoot学习笔记】04. Thymeleaf模板引擎

模板引擎 templates下的只能通过Controller来跳转,templates前后端分离,需要模板引擎thymeleaf支持 模板引擎的作用就是我们来写一个页面模板,比如有些值呢,是动态的,我们写一些表达式。而这些值,从哪来呢…

【JavaWeb】MySQL基础操作

1 通用语法规则 SQL语句可以单行或者多行书写,以分号结尾SQL语句不区分大小写,关键字建议使用大写单行注释 --注释内容(通用) # 注释内容(MySQL独有)多行注释 /* 注释内容 */ 2 语句 数据库 -- 查…

【uniapp】uniapp使用微信开发者工具制作骨架屏:

文章目录 一、效果:二、过程: 一、效果: 二、过程: 【1】微信开发者工具打开项目,生成骨架屏,将wxml改造为vue页面组件,并放入样式 【2】页面使用骨架屏组件 【3】改造骨架屏(去除…