当前位置: 首页 > wzjs >正文

装修公司做宣传在哪个网站泉州全网营销优化

装修公司做宣传在哪个网站,泉州全网营销优化,宝鸡做网站费用,深圳vi设计内容策略设计模式 🚩什么是策略设计模式?🚩策略设计模式的特点🚩策略设计模式的结构🚩策略设计模式的优缺点🚩策略设计模式的Java实现🚩代码总结🚩总结 🚩什么是策略设计模式…

策略设计模式

  • 🚩什么是策略设计模式?
  • 🚩策略设计模式的特点
  • 🚩策略设计模式的结构
  • 🚩策略设计模式的优缺点
  • 🚩策略设计模式的Java实现
  • 🚩代码总结
  • 🚩总结

🚩什么是策略设计模式?

策略设计模式(Strategy Pattern) 是一种 行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以互相替换,且算法的变化不会影响使用算法的客户。策略模式让算法独立于使用它的客户端而变化。

使用场景

  • 当需要在运行时选择不同的算法变体时

  • 当一个类定义了多种行为,并且这些行为以多个条件语句的形式出现时

  • 当需要隔离算法的具体实现与使用算法的客户端时

  • 适用于 支付方式选择排序算法切换折扣计算 等场景

🚩策略设计模式的特点

  • 定义算法族:将相关的算法封装成独立的策略类

  • 运行时切换:可以在运行时动态改变对象使用的算法

  • 消除条件语句避免使用多重条件判断来选择算法

  • 开闭原则:新增策略无需修改已有代码

  • 单一职责:每个策略类只负责一个算法

🚩策略设计模式的结构

策略模式主要包含以下部分:

  • Context(环境类):持有一个策略类的引用,调用具体策略

  • Strategy(抽象策略):定义所有支持的算法的公共接口

  • ConcreteStrategy(具体策略):实现抽象策略定义的算法

图例:

在这里插入图片描述

🚩策略设计模式的优缺点

✅ 优点

  • 算法可自由切换:策略类之间可以自由替换

  • 避免多重条件判断:将算法实现与使用分离

  • 扩展性好:增加新策略无需修改原有代码

  • 符合开闭原则:对扩展开放,对修改关闭

  • 易于单元测试:每个策略可以单独测试

❌ 缺点

  • 策略类数量增多:每个策略都是一个类,可能增加系统复杂度

  • 客户端必须了解所有策略:需要知道不同策略的区别

  • 策略对象可能增加开销:如果策略是无状态的,可以考虑共享

🚩策略设计模式的Java实现

代码地址:GitHub

  • 创建一个公共策略接口,定义公共操作两数操作方法TwoNumberOperation
/*** @author hanson.huang* @version V1.0* @InterfaceName Strategy* @Description 所有策略的公共操作* @date 2025/3/26 10:14**/
public interface Strategy {public void TwoNumberOperation(int a, int b);
}
  • 定义三个具体的策略类,AddStrategySubtractionStrategyMultiplyStrategy

    • AddStrategy两数之和
    /*** @author hanson.huang* @version V1.0* @ClassName AddStrategy* @Description 两数加法策略* @date 2025/3/26 10:33**/
    public class AddStrategy implements Strategy{@Overridepublic void TwoNumberOperation(int a, int b) {System.out.println(a + b);}
    }
    
    • SubtractionStrategy两数之差
    /*** @author hanson.huang* @version V1.0* @ClassName SubtractionStrategy* @Description 两数减法策略* @date 2025/3/26 10:35**/
    public class SubtractionStrategy implements Strategy {@Overridepublic void TwoNumberOperation(int a, int b) {System.out.println(a - b);}
    }
    
    • MultiplyStrategy 两数之积
    /*** @author hanson.huang* @version V1.0* @ClassName MultiplyStrategy* @Description 两数乘法策略* @date 2025/3/26 10:36**/
    public class MultiplyStrategy implements Strategy {@Overridepublic void TwoNumberOperation(int a, int b) {System.out.println(a * b);}
    }
    
  • OperationContext 策略类引用

/*** @author hanson.huang* @version V1.0* @ClassName OperationContext* @Description 策略引用* @date 2025/3/26 10:37**/
public class OperationContext {private Strategy strategy;public OperationContext(Strategy strategy) {this.strategy = strategy;}public void Operation(int a, int b) {strategy.TwoNumberOperation(a, b);}
}

📌 运行结果

在这里插入图片描述

🚩代码总结

  • Strategy 接口定义了所有策略的公共操作

  • AddStrategySubtractionStrategyMultiplyStrategy 是具体策略实现

  • OperationContext 是环境类,持有一个策略引用

  • 客户端可以动态切换不同的策略对象

🚩总结

  • 策略设计模式 定义算法族并封装每个算法,使它们可以互相替换

  • 核心是 将算法与使用算法的客户端解耦,避免使用条件语句

  • 适用于 需要动态切换算法有多种相似行为 的场景

✅ Java源码中的应用场景:

  1. Java集合框架中的Comparator

    • 不同的排序策略可以通过实现Comparator接口来实现
  2. Java线程池的拒绝策略:

    • AbortPolicyCallerRunsPolicy等不同的拒绝策略实现

创作不易,不妨点赞、收藏、关注支持一下,各位的支持就是我创作的最大动力❤️

在这里插入图片描述

http://www.dtcms.com/wzjs/529245.html

相关文章:

  • bt网站建设手机优化大师官网
  • 行业网站运营百度搜索怎么优化
  • 免费建站排名如何让自己的网站快速被百度收录
  • wordpress排行li图标裤子seo标题优化关键词
  • asp.net动态网站开发教程pdf宁波谷歌seo
  • 廊坊网站群发关键词seo排名优化软件
  • 企业级网站开发技术沈阳seo建站
  • 网站突然打不开谷歌推广代理商
  • 国贸做网站的公司企业培训网
  • 郑州做企业网站app推广怎么做
  • 网站模板排名餐饮管理培训课程
  • 广东省住房和城乡建设委员会网站广告推广免费发布
  • html中音乐网站怎么做郑州网站优化培训
  • 销售网站制作电话免费打广告平台有哪些
  • 建设棋牌类网站要多少钱谷歌推广新手教程
  • 找个做游戏的视频网站百度人工电话
  • wordpress搜索增强沈阳seo关键词
  • 专做校园购物网站佛山网络推广平台
  • 网站推广临沂网站首页排名
  • 做公益网站又什么要求郑州厉害的seo顾问公司
  • 上海莱布拉网站建设企业建站平台
  • 做煤的网站apppc网站建设和推广
  • 网站框架一般用什么做网络推广和网站推广
  • 系统网站建设需求分析企业网站源码
  • 雄安网站建设制作最有效的恶意点击
  • 网站项目分析怎么做 方法有哪些百度网址大全 旧版本
  • 网站建站行业公司主页建设高权重友情链接
  • 网站后台查询软件百度小说网
  • 购买网站网上推广用什么平台推广最好
  • 宁乡的网站建设学技术的培训学校