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

互联网推广营销隐迅推我选免费seo教程资源

互联网推广营销隐迅推我选,免费seo教程资源,公众号制作编辑器,河北斯皮尔网站建设定义一系列算法#xff0c;将每个算法封装成独立的对象#xff0c;并使这些对象可互相替换。这使得在运行时可以动态地选择算法#xff0c;而不必改变使用算法的客户端代码。策略模式的主要目标是将算法的定义与使用分离#xff0c;使得客户端可以根据需要灵活地选择和切换…定义一系列算法将每个算法封装成独立的对象并使这些对象可互相替换。这使得在运行时可以动态地选择算法而不必改变使用算法的客户端代码。策略模式的主要目标是将算法的定义与使用分离使得客户端可以根据需要灵活地选择和切换不同的算法而不影响到客户端代码的稳定性。 策略模式的使用场景 多种算法实现 当一个问题有多种算法实现时可以使用策略模式来将这些算法封装成独立的策略类使得这些算法可以互相替换而不影响客户端代码。避免条件判断 当存在大量的条件语句来选择不同的行为时可以使用策略模式将这些行为封装成策略类从而减少条件判断提高代码的可读性和可维护性。算法变化频繁 如果系统中的算法经常需要变化使用策略模式可以方便地新增、修改和替换算法而不必修改客户端代码。开闭原则支持 策略模式支持开闭原则可以在不修改已有代码的情况下扩展系统功能。分层架构 在分层架构中策略模式可以用于将业务逻辑与具体的实现分离使得业务逻辑层和具体实现层解耦。配置灵活性 当需要根据配置文件或用户输入来选择不同的行为时策略模式可以提供灵活的配置方式。测试和维护性 由于策略模式将不同的算法分离成独立的策略类可以更方便地进行单元测试和维护。 策略模式主要角色 策略接口 定义了一组算法的共同接口具体策略类需要实现这个接口。它通常包含一个或多个抽象方法用于定义不同算法的行为。具体策略类 实现了策略接口即具体的算法逻辑。每个具体策略类负责实现一个特定的算法。具体策略类之间是可以相互替换的客户端代码不需要知道具体算法的实现细节。上下文 持有一个策略对象并在需要时调用策略的方法。上下文将算法的执行委托给具体的策略对象。上下文也可以包含一些辅助方法用于操作策略对象。 策略模式的流程 客户端创建一个上下文对象并设置具体的策略对象。当客户端需要执行特定算法时它调用上下文的方法上下文会将请求委托给具体策略对象具体策略对象执行算法并将结果返回给上下文上下文将结果传递给客户端。 策略模式java代码示例 实现一生鲜市场到点打折活动 策略接口 // 策略接口 public interface DiscountStrategy {double applyDiscount(double originalPrice); }策略实现类 public class RegularDiscount implements DiscountStrategy{Overridepublic double applyDiscount(double originalPrice) {return originalPrice;//原价} }public class SaleDiscount implements DiscountStrategy {Overridepublic double applyDiscount(double originalPrice) {return originalPrice*0.8;//8折} }public class SpecialDiscount implements DiscountStrategy{Overridepublic double applyDiscount(double originalPrice) {return originalPrice*0.5;//5折} }上下文 // 上下文类 public class ShoppingCart{private DiscountStrategy discountStrategy;public void setDiscountStrategy(DiscountStrategy discountStrategy) {this.discountStrategy discountStrategy;}//获取最新价格public double getPrice(double regularPrice){return discountStrategy.applyDiscount(regularPrice);}}客户端 public static void main(String[] args) {ShoppingCart cart new ShoppingCart();double originalPrice 100.0;double discountedPrice;cart.setDiscountStrategy(new RegularDiscount());discountedPrice cart.getPrice(originalPrice);System.out.println(8点价格discountedPrice);cart.setDiscountStrategy(new SaleDiscount());discountedPrice cart.getPrice(originalPrice);System.out.println(9点价格discountedPrice);cart.setDiscountStrategy(new SpecialDiscount());discountedPrice cart.getPrice(originalPrice);System.out.println(10点价格discountedPrice); }输出 8点价格100.0 9点价格80.0 10点价格50.0策略模式优缺点 优点 灵活性高 策略模式使得算法可以独立地变化而不会影响到客户端代码。可以随时切换或扩展算法而无需修改客户端。可维护性好 每个具体策略类都具备清晰的职责使得代码更加模块化和可读。新增或修改算法时只需修改相应的策略类不影响其他部分遵循开闭原则 策略模式支持开闭原则可以在不修改已有代码的情况下添加新的策略类消除条件判断 策略模式可以避免大量的条件判断将不同的行为封装到不同的策略类中使得代码更加简洁可测试性强 每个策略类都是相对独立的易于进行单元测试。 缺点 类数量增多 策略模式会引入多个具体策略类可能导致类的数量增多增加了代码的复杂度。客户端需要了解策略 客户端需要了解不同的策略类并选择适当的策略这可能在某些情况下增加了客户端的复杂度增加对象数量 每个策略类都是一个对象可能会增加系统的对象数量。在某些情况下可以通过共享策略对象来缓解这个问题上下文类复杂 上下文类需要持有一个策略对象并在运行时选择合适的策略。在某些情况下可能会使上下文类变得复杂
http://www.sadfv.cn/news/144625/

相关文章:

  • 石佛营网站建设长春市建设工程信息网站
  • 免费网站建设链接很长 知呼用fw做明星的网站
  • 域名网站搭建万户做的网站安全吗
  • 做网站美工工资多少网站常用的蓝色
  • 美工网站做兼职福建省头条新闻
  • 叫人建设网站要注意什么问题淘宝数据网站开发
  • 开一家网络公司做网站前景如何商标注册要求
  • 做网站自己上传电影要多大服务器百度怎样建立一个网站
  • 上海网站建设排名公司北京制作网站多少钱
  • 网站导航背景 蓝色wordpress+屏蔽ip插件
  • 企业电子商务网站建设规划方案大气集团网站
  • 有哪些做封面的网站网站开发对比特点
  • 网站设置了权限个人网站如何制作教程
  • 友情链接添加在网站中有什么用农林牧渔行业网站建设
  • 实训课建设网站步骤网页升级维护
  • 做网站费乐平市网站建设
  • 如何给网站做高质量外链中国旺旺(00151) 股吧
  • 矿区网站建设纹绣培训班一般价格多少
  • 域名备案网站服务内容建设网站哪个比较好
  • 临沂网站建设报价设计的很好的网站
  • ps做网站页面步骤专业网站建设分类标准
  • 折扣网站怎么做设计制作图片
  • 做网站前提需要什么有个新网站能提供
  • 东莞培训网站建设建站平台外贸
  • 凡科建站是不是关闭企业网站wordpress装修模板
  • 网站icp备案号查询八百客crm系统登录入口
  • 漳州平台网站建设西部数码WordPress开启伪静态
  • 怎么看网站哪个公司做的国家高新技术企业有什么好处
  • 哪个网站收录排名好网站建设海报图片
  • 网站搭建谷歌seo铜陵建设行业培训学校网站