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

网站 参数组织建设方面

网站 参数,组织建设方面,娄底市建设网站,微信公众号官网登录入口手机版文章目录 前言一、介绍二、特点三、详细介绍1.核心组成2.代码示例3.优缺点优点缺点 4.使用场景 总结 前言 策略模式定义一系列算法#xff0c;封装每个算法#xff0c;并使它们可以互换。 一、介绍 策略模式#xff08;Strategy Pattern#xff09;是一种行为型设计模式封装每个算法并使它们可以互换。 一、介绍 策略模式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.使用场景 当需要在运行时根据不同的条件选择使用不同的算法或行为时。当需要避免使用大量的条件语句来决定使用哪个算法时。当需要使算法的变化独立于使用算法的客户时。当需要让客户能够定义一系列行为中的一个作为算法时。 总结 策略模式在实际开发中非常有用特别是在需要根据不同的业务规则动态选择算法的场景中。它提高了代码的灵活性和可扩展性使得算法的变化不会影响到使用算法的客户。
http://www.tj-hxxt.cn/news/216976.html

相关文章:

  • 龙岗住房建设局网站企业建筑网站
  • 成都专业做网站网站程序安装
  • 免费行情软件网站下载展台展览
  • 石家庄心雨网站建设网站开发难点
  • 广州自助网站设计平台wordpress去掉版本号
  • 镇江网站制作案例网站建设化妆品的目录
  • 网站内容维护有哪些方面公司主页怎么填
  • 濮阳网站建设哪里便宜深圳制作公司网站
  • 网站营销工具wordpress分享积分
  • 青海中小企业网站建设wordpress制作翻译
  • 企业建站服务器央视网新闻
  • 做电商网站的上海公司培训网站建设学校
  • 林州网站建设哪家专业wordpress charts
  • 网站开发报告步骤分析999导航
  • 阜南县城乡建设局官方网站网络公司开发网站
  • 农业信息网站 建设什么是电子商务网站的建设
  • 建网站的公司叫什么石家庄建设项目公示网
  • 动漫网站建设毕业设计公众号开发的可行性
  • 小游戏网站模板晚上求个地址2021
  • 网站的建设方法有哪些内容网络报警平台
  • 竹溪县县建设局网站麦包包网站建设特点
  • 网站最好推广的方式白云品牌型网站建设
  • 黑群晖wordpress建站网站实现微信登录
  • ac域名的网站有啥不同新手卖家做来赞达网站如何
  • 网站建设进度以及具体内容东营seo网站推广费用
  • 做商品推广有那些网站福田庆三鼻子
  • asp网站安装到空间东莞seo关键词优化
  • 做小型企业网站多少钱鸿星尔克品牌策划方案
  • wordpress 跳转特效北京网站优化推广收集
  • Html5手机静态网站设计广州那家做网站最好