品古典家具网站模板株洲网站建设 英铭
2026/5/21 19:50:09 网站建设 项目流程
品古典家具网站模板,株洲网站建设 英铭,短网址统计,微信小程序怎么做商城什么是策略模式#xff1f; 策略模式的 主要包含三个组件 抽象策略类#xff0c; 环境类#xff0c; 具体的策略类。 抽象策略类 我理解 其实就是要解决的问题#xff0c; 具体的策略类 则是在不同的条件下 解决这个问题的处理逻辑#xff0c; 而环境类 就是负责在不同条…什么是策略模式策略模式的 主要包含三个组件 抽象策略类 环境类 具体的策略类。抽象策略类 我理解 其实就是要解决的问题 具体的策略类 则是在不同的条件下 解决这个问题的处理逻辑 而环境类 就是负责在不同条件下 调用不同的策略类。 一般来说 这个条件会用注解的方式 直接放在策略类上那么 环境类实际上只需要扫描所有 有这个注解 的策略类 那么 当 实际条件进来 根据注解的值即条件 直接就能知道 调用哪个策略类。它核心逻辑 其实跟 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的转换器 就不会其他的转换器了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询