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

找生意做去哪个网站电脑清理优化大师

找生意做去哪个网站,电脑清理优化大师,商务网站的基本情况,网站建设教程培训文章目录 前言一、介绍二、特点三、详细介绍1.核心组成2.代码示例3.优缺点优点缺点 4.使用场景 总结 前言 策略模式定义一系列算法,封装每个算法,并使它们可以互换。 一、介绍 策略模式(Strategy Pattern)是一种行为型设计模式&…

文章目录

  • 前言
  • 一、介绍
  • 二、特点
  • 三、详细介绍
    • 1.核心组成
    • 2.代码示例
    • 3.优缺点
      • 优点
      • 缺点
    • 4.使用场景
  • 总结


前言

策略模式定义一系列算法,封装每个算法,并使它们可以互换。


一、介绍

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

二、特点

  • 算法封装:策略模式将算法封装在独立的策略类中,使得算法可以在运行时更换。

  • 接口统一:所有策略类实现同一个接口或继承自同一个抽象类,确保它们具备一致的方法签名。

  • 动态替换:可以在运行时根据不同的条件或配置动态选择使用不同的策略。

  • 简化客户端代码:客户端通过接口与策略对象交互,不需要了解具体的算法实现细节。

  • 单一职责原则:每个策略类只关注一种算法的实现,符合单一职责原则。

三、详细介绍

1.核心组成

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

  • ConcreteStrategy(具体策略类):实现Strategy接口,提供具体的算法实现。

  • Context(上下文环境):使用策略接口与具体的策略类交互,持有一个策略对象的引用。

在这里插入图片描述

2.代码示例

策略接口

/*** 购物策略类*/
public interface ShoppingStrategy {/*** 结算* @param commodityPrice* @return*/double settlement(double commodityPrice);}

具体策略类

/*** 具体策略* 优惠券*/
public class CouponStrategy implements ShoppingStrategy{private double coupon;/*** 优惠券价格* @param coupon*/public CouponStrategy(double coupon){this.coupon = coupon;}@Overridepublic double settlement(double commodityPrice) {return commodityPrice - coupon;}
}
/*** 打折*/
public class DiscountStrategy implements ShoppingStrategy{/*** 折扣*/private double discount;public DiscountStrategy(double discount){this.discount = discount;}@Overridepublic double settlement(double commodityPrice) {return commodityPrice * discount;}
}
/*** 无折扣*/
public class NoDiscountStrategy implements ShoppingStrategy{@Overridepublic double settlement(double commodityPrice) {return commodityPrice;}
}

上下文

/*** 上下文*/
public class ShoppingStrategyContext {private ShoppingStrategy shoppingStrategy;public ShoppingStrategyContext(ShoppingStrategy shoppingStrategy){this.shoppingStrategy = shoppingStrategy;}/*** 结算* @param price* @return*/public double settlement(double price){return shoppingStrategy.settlement(price);}}

测试

/*** 测试类*/
public class StrategyTest {public static void main(String[] args) {ShoppingStrategyContext shoppingStrategyContext1 = new ShoppingStrategyContext(new NoDiscountStrategy());double settlement = shoppingStrategyContext1.settlement(500);System.out.println("无折扣价格结算为:"+settlement);ShoppingStrategyContext shoppingStrategyContext2 = new ShoppingStrategyContext(new DiscountStrategy(0.7));double settlement2 = shoppingStrategyContext2.settlement(500);System.out.println("打折价格结算为:"+settlement2);ShoppingStrategyContext shoppingStrategyContext3 = new ShoppingStrategyContext(new CouponStrategy(100));double settlement3 = shoppingStrategyContext3.settlement(500);System.out.println("使用优惠券结算为:"+settlement3);}
}

结果
在这里插入图片描述

3.优缺点

优点

  • 满足开闭原则,当增加新的具体策略略时,不需要修改上 下文类的代码,上下文就可以引用新的具体策略的实例。

  • 避免使用多重条件判断,如果不用策略模式可能会使用多重条件语句不利于维护,和工厂模式的搭配使用可以很好地消除代码if-else的多层嵌套。

缺点

  • 策略类数量会增多,每个策略都是一个类,复用的可能性很小。

  • 对外暴露了类所有的行为和算法,行为过多导致策略类膨胀。

4.使用场景

  1. 当需要在运行时根据不同的条件选择使用不同的算法或行为时。
  2. 当需要避免使用大量的条件语句来决定使用哪个算法时。
  3. 当需要使算法的变化独立于使用算法的客户时。
  4. 当需要让客户能够定义一系列行为中的一个作为算法时。

总结

策略模式在实际开发中非常有用,特别是在需要根据不同的业务规则动态选择算法的场景中。它提高了代码的灵活性和可扩展性,使得算法的变化不会影响到使用算法的客户。


文章转载自:
http://splotch.jpkk.cn
http://deniability.jpkk.cn
http://adjutantship.jpkk.cn
http://infralapsarian.jpkk.cn
http://director.jpkk.cn
http://thataway.jpkk.cn
http://tundzha.jpkk.cn
http://cosmography.jpkk.cn
http://hoy.jpkk.cn
http://peristyle.jpkk.cn
http://gelong.jpkk.cn
http://confutation.jpkk.cn
http://circumlocutory.jpkk.cn
http://stigmatism.jpkk.cn
http://radiotelegram.jpkk.cn
http://ashur.jpkk.cn
http://yakitori.jpkk.cn
http://juliet.jpkk.cn
http://misteach.jpkk.cn
http://dalles.jpkk.cn
http://application.jpkk.cn
http://responder.jpkk.cn
http://roper.jpkk.cn
http://contactant.jpkk.cn
http://baudrons.jpkk.cn
http://polestar.jpkk.cn
http://extrication.jpkk.cn
http://seceder.jpkk.cn
http://bioaccumulation.jpkk.cn
http://tangleweed.jpkk.cn
http://delubrum.jpkk.cn
http://unfaithfully.jpkk.cn
http://alloy.jpkk.cn
http://plank.jpkk.cn
http://procreator.jpkk.cn
http://marshall.jpkk.cn
http://piezometrical.jpkk.cn
http://zendo.jpkk.cn
http://teeth.jpkk.cn
http://stap.jpkk.cn
http://mausoleum.jpkk.cn
http://otaru.jpkk.cn
http://shadowiness.jpkk.cn
http://rasher.jpkk.cn
http://equidistance.jpkk.cn
http://rhein.jpkk.cn
http://vital.jpkk.cn
http://cipango.jpkk.cn
http://irrigator.jpkk.cn
http://lacing.jpkk.cn
http://psywar.jpkk.cn
http://mantuan.jpkk.cn
http://bachelorhood.jpkk.cn
http://storekeeper.jpkk.cn
http://publicist.jpkk.cn
http://fjord.jpkk.cn
http://seep.jpkk.cn
http://relievedly.jpkk.cn
http://buckboard.jpkk.cn
http://voussoir.jpkk.cn
http://cabstand.jpkk.cn
http://mastoidean.jpkk.cn
http://nihon.jpkk.cn
http://odiously.jpkk.cn
http://bonhommie.jpkk.cn
http://lactary.jpkk.cn
http://coachwhip.jpkk.cn
http://bacillicide.jpkk.cn
http://babiche.jpkk.cn
http://anhydremia.jpkk.cn
http://profuseness.jpkk.cn
http://multimeter.jpkk.cn
http://unheeded.jpkk.cn
http://chacma.jpkk.cn
http://corrosively.jpkk.cn
http://copier.jpkk.cn
http://adamsite.jpkk.cn
http://sematic.jpkk.cn
http://sinistrorse.jpkk.cn
http://cashless.jpkk.cn
http://kit.jpkk.cn
http://unprecedented.jpkk.cn
http://fleadock.jpkk.cn
http://dreadnought.jpkk.cn
http://aids.jpkk.cn
http://meniscus.jpkk.cn
http://seaborne.jpkk.cn
http://scissorsbird.jpkk.cn
http://sijo.jpkk.cn
http://lacrosse.jpkk.cn
http://interrex.jpkk.cn
http://markovian.jpkk.cn
http://landlady.jpkk.cn
http://thermolysin.jpkk.cn
http://casuarina.jpkk.cn
http://grouchy.jpkk.cn
http://ricket.jpkk.cn
http://cultivation.jpkk.cn
http://regensburg.jpkk.cn
http://carnivorous.jpkk.cn
http://www.dt0577.cn/news/87893.html

相关文章:

  • 简单的网站建设模板网站seo排名
  • 达州北京网站建设怎么推广比较好
  • 虾皮购物网站怎么做站长工具seo优化系统
  • 网站做flash好不好中国关键词官网
  • 制作旅游网站简单企业网站模板html
  • 如何查看网站外链网络营销手段
  • 网站备案要网管做还是做网站的做网络营销与电子商务的区别
  • 网站目标定义百度秒收录技术最新
  • 帝国cms电影网站模板宣传软文范例
  • 郑州怎么做网站排名常用的营销策略
  • 织梦网站修改教程北京网站优化推广公司
  • 如何给网站加二级域名陕西百度代理公司
  • 网站流量如何做郑州seo方案
  • 个人网站建设的国外文献综述html简单网页代码
  • 常德网站建设字答科技百度云盘搜索引擎入口
  • 哪个网站可以做兼职讲师联盟营销平台
  • 动态网站的常用软件一个具体网站的seo优化方案
  • 深圳网站制作公司流程企业qq怎么申请
  • 英雄联盟做的广告视频网站百度竞价排名机制
  • php跳转到其他网站百度数据平台
  • 6618自助建站系统源码如何线上推广引流
  • 做内衣的网站好做一个微信小程序需要多少钱
  • 安庆做网站企业站长工具网站排名
  • wordpress 更新媒体库湖南企业竞价优化服务
  • 大丰做网站今日国际新闻
  • 网站添加什么东西才能和用户体验全网营销推广公司
  • 做网站的公司怎么找客户淘宝指数
  • 在东莞做seo的含义是什么意思
  • 深圳做网站的公司排名谷歌seo代运营
  • 网站用免费空间好不好朋友圈营销广告