news 2026/7/12 5:08:43

Java常见技术分享-08-策略模式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java常见技术分享-08-策略模式

什么是策略模式?

策略模式的 主要包含三个组件 抽象策略类, 环境类, 具体的策略类。
抽象策略类 我理解 其实就是要解决的问题, 具体的策略类 则是在不同的条件下 解决这个问题的处理逻辑, 而环境类 就是负责在不同条件下 调用不同的策略类。 一般来说 这个条件会用注解的方式 直接放在策略类上,那么 环境类实际上只需要扫描所有 有这个注解 的策略类, 那么 当 实际条件进来 , 根据注解的值,即条件, 直接就能知道 调用哪个策略类。
它核心逻辑 其实跟 if-else 很像, 都是根据不同条件选不同的处理方式, 但策略模式把 每个条件 对应的处理逻辑, 单独抽出来成了一个类。 这样做的好处是 当需要增加新的条件 以及处理方式的时候 不用改原有的代码块, 直接新增一个策略类就好了。 代码会更干净更好维护。 符合开闭原则, 对扩展开放, 对修改关闭。

策略模式在SpringBoot中底层实际用途有了解吗?

SpringBoot 底层 有一个抽象策略类 叫做HttpMessageConverter, 具体的策略类 有处理 JSON的 Jackson 转换器 如 MappingJackson2HttpMessageConverter或者 处理字符串的 StringHttpMessageConverter , 环境类 的职责 则被融入到了 策略类中的 canRead和canWrite 方法,比如 当一个请求进来 , 就会调用转换器的 canRead方法 看请求的 content-type是不是 这个转换器可以处理的, 例如是Json转换器的话, 就看content-type是不是application/json. ,如果是就返回true. 在响应的场景则是 看请求的Accept头 是否等于 application/json 或者 接口有没有指定的 produces= “application/json”, 如果是 , canWrite就会返回true. 这里遇到第一个返回为true的转换器, 就不会其他的转换器了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/11 8:38:07

Ascend C算子与PyTorch生态无缝融合:自定义算子开发实战指南

目录 📋 摘要 🏗️ 技术原理 2.1 架构设计理念解析:CANN的七层软件栈哲学 2.2 核心算法实现:Ascend C向量化编程范式 2.3 性能特性分析:达芬奇架构的硬件优势 🔧 实战部分 3.1 完整可运行代码示例&a…

作者头像 李华
网站建设 2026/7/12 2:09:07

ML.NET实现人名、地名的提取

ML.NET 可以通过文本分类或命名实体识别(NER)任务实现人名、地名的提取。以下是使用 ML.NET 实现该功能的核心思路和步骤:核心原理提取人名、地名属于命名实体识别(NER) 任务,本质是对文本中的每个词或字符…

作者头像 李华
网站建设 2026/7/11 20:09:37

教育场景下的AI助教实践:基于LobeChat的智能问答系统

教育场景下的AI助教实践:基于LobeChat的智能问答系统 在一所普通高中的晚自习教室里,一名学生正盯着物理作业本上的一道力学题发愁。他打开学校内网的“AI学习助手”网页,上传了题目截图,输入:“请帮我分析这个物体的受…

作者头像 李华
网站建设 2026/7/11 21:35:43

超详细图文教程:Windows环境部署LobeChat全过程

Windows 环境部署 LobeChat 全过程:从零开始搭建你的私有化 AI 聊天平台 在今天,一个能与大语言模型顺畅对话的界面,几乎成了每个开发者、产品经理甚至普通用户的刚需。我们手握 GPT、通义千问、Llama3 这样的强大模型,却常常被原…

作者头像 李华
网站建设 2026/7/10 13:52:47

大数据领域 ClickHouse 的资源管理策略

大数据领域 ClickHouse 的资源管理策略关键词:大数据、ClickHouse、资源管理策略、性能优化、资源分配摘要:本文聚焦于大数据领域中 ClickHouse 的资源管理策略。随着大数据应用的不断发展,ClickHouse 作为一款高性能的列式数据库管理系统&am…

作者头像 李华
网站建设 2026/7/10 10:09:02

LobeChat能否对接Google Sheets?电子表格自动化更新

LobeChat能否对接Google Sheets?电子表格自动化更新 在日常办公中,你是否曾为重复填写销售报表、手动同步会议纪要或逐条录入客户信息而感到繁琐?尤其是在多平台间切换时——浏览器开十几个标签页,一边听语音记录一边敲键盘&#…

作者头像 李华