news 2026/7/24 5:39:38

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/23 22:34:58

一个基于 .NET + Vue3 开源、免费、精美的通用业务型后台管理系统

致力于挖掘功能强大、性能优越、创新前沿且简单易用的 C#/.NET 开源框架、项目、类库与工具。助力 .NET 开发者轻松解锁并运用这些实用的宝藏资源,提升开发效率与创新能力!项目概述SimpleAdmin 是一个基于 .NET Vue3 开发的通用业务型后台管理系统&…

作者头像 李华
网站建设 2026/7/23 5:03:00

如何为LobeChat添加身份认证以保护内部AI系统安全?

如何为 LobeChat 添加身份认证以保护内部 AI 系统安全 在企业逐步将大语言模型(LLM)引入办公流程的今天,一个直观、易用的前端界面往往决定了 AI 工具能否真正落地。LobeChat 凭借其现代化的设计、对多种模型的无缝支持以及灵活的插件体系&a…

作者头像 李华
网站建设 2026/7/23 17:03:41

数据编目与元数据管理:不可不知的关系

数据编目与元数据管理:像图书馆管理员和藏书索引的共生密码 关键词 数据编目、元数据管理、数据治理、数据资产、元数据模型、数据目录、数据发现 摘要 你有没有过这样的经历?打开企业的数据平台,看到几百张表名像乱码的数据库表(…

作者头像 李华
网站建设 2026/7/23 2:51:14

Safari浏览器特殊配置:iOS设备上的最佳实践

Safari浏览器特殊配置:iOS设备上的最佳实践 在移动互联网高度成熟的今天,用户早已不再满足于“能用”的网页体验——他们期待的是流畅、智能、无缝的交互。而当你的 Web 应用承载着语音识别、实时流式响应、文件上传等复杂功能时,一个看似普…

作者头像 李华
网站建设 2026/7/24 5:10:56

大数据升级之路 | Storm理论详解

随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,比如网站统计、推荐系统、预警系统、金融系统(高频交易、股票)等等,大数据实时处理解决方案(流计算)的应用日趋广泛,目前已是分布式技术领域最新爆发点&#xff…

作者头像 李华
网站建设 2026/7/22 22:11:14

字节新论文:通过Context-Folding记忆折叠实现复杂Agent

摘要 今天一起看下字节新出论文《Scaling Long-Horizon LLM Agent via Context-Folding》。 在构建长程(Long-Horizon)Agent 时,上下文窗口的线性增长与注意力的二次方开销是制约模型推理能力与运行效率的核心瓶颈。不同于传统的 RAG 或基于摘要的被动压缩,字节提出的Cont…

作者头像 李华