news 2026/4/16 12:14:42

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/4/16 10:46:08

算法-广度优先搜索-09

力扣-真题-岛屿数量我的想法是 初始化一个 sum代表岛屿数量, 没遍历到一个 1, sum sum 1 然后从这个位置开始 进行广度优先搜索 把所有相连的1 全部变成0 (原地修改)。 然后再继续向下遍历 。 就能得到所有岛屿数量了。public int numIslan…

作者头像 李华
网站建设 2026/4/16 10:41:57

LobeChat数据安全合规声明

LobeChat 数据安全合规架构深度解析 在企业加速拥抱大模型的今天,一个看似简单的问题却成了落地的关键障碍:我们能放心让员工把内部文档、客户数据甚至源代码丢进聊天框吗?尤其是当这些对话要经过第三方云服务时,合规风险往往成为…

作者头像 李华
网站建设 2026/4/15 14:45:56

LobeChat支持哪些大语言模型?一文看懂所有兼容性细节

LobeChat支持哪些大语言模型?一文看懂所有兼容性细节 在AI助手日益普及的今天,越来越多用户不再满足于单一模型、固定界面的聊天工具。面对OpenAI、Claude、通义千问等层出不穷的大模型,如何在一个统一平台中自由切换、灵活调用,成…

作者头像 李华
网站建设 2026/4/16 12:00:52

彼得林奇的“反向思维“在牛市中的应用

彼得林奇的"反向思维"在牛市中的应用 关键词:彼得林奇、反向思维、牛市、投资策略、股票市场 摘要:本文聚焦于彼得林奇的“反向思维”在牛市中的应用。首先介绍了背景信息,包括目的、预期读者、文档结构和相关术语。接着阐述了核心…

作者头像 李华
网站建设 2026/4/15 16:10:31

ClickHose和Hive的对比与选择

前言 上文提到最近在搭建ClickHouse,基本上可以正常使用了,不过各项指标还得观察一段时间,毕竟硬盘资源虽然相对便宜用多了也扛不住,在选择将打点数据进行迁移的时候,主要有 ClickHouse 和 Hive 两个备选项&#xff0…

作者头像 李华
网站建设 2026/4/16 10:54:01

LobeChat负载均衡部署实践:应对高并发访问

LobeChat 负载均衡部署实践:应对高并发访问 在企业级 AI 应用日益普及的今天,一个看似简单的聊天界面背后,往往承载着成千上万用户的实时交互请求。以 LobeChat 为代表的开源智能对话前端,因其美观的 UI 和强大的多模型支持能力&a…

作者头像 李华