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

中国档案网站建设的特点网站制作app

中国档案网站建设的特点,网站制作app,淄博哪里有网站建设平台,wordpress页面设置全屏策略这个词应该怎么理解#xff0c;打个比方说#xff0c;我们出门的时候会选择不同的出行方式#xff0c;比如骑自行车、坐公交、坐火车、坐飞机、坐火箭等等#xff0c;这些出行方式#xff0c;每一种都是一个策略。 再比如我们去逛商场#xff0c;商场现在正在搞活动打个比方说我们出门的时候会选择不同的出行方式比如骑自行车、坐公交、坐火车、坐飞机、坐火箭等等这些出行方式每一种都是一个策略。 再比如我们去逛商场商场现在正在搞活动有打折的、有满减的、有返利的等等其实不管商场如何进行促销说到底都是一些算法这些算法本身只是一种策略并且这些算法是随时都可能互相替换的比如针对同一件商品今天打八折、明天满100减30这些策略间是可以互换的。 策略模式是一种行为型设计模式它允许在运行时选择算法的行为。在这个设计模式中可以定义一系列的算法将每种算法封装到单独的类中并使它们可以相互替换。这样可以使算法的变化独立于使用算法的客户端。 在这个打折策略的例子中我们使用了策略模式来实现不同的打折算法包括正常收费、打折收费和返利收费。下面是策略模式的主要组成部分及其作用 策略接口CashSuper定义了一个算法族的公共接口其中包含了所有具体算法类所需的方法。在这个例子中CashSuper接口定义了acceptCash方法用于计算最终的收费金额。 具体策略类每个具体策略类实现了策略接口提供了特定的算法实现。在这个例子中CashNormal、CashDiscount和CashReturn分别是具体策略类分别表示了正常收费、打折收费和返利收费的算法实现。 上下文类CashContext上下文类持有一个策略对象的引用并在运行时根据客户端的需要选择合适的策略。在这个例子中CashContext类根据传入的打折类型选择对应的打折策略并在客户端请求时调用选定策略的方法。 通过使用策略模式我们可以方便地扩展和修改打折算法而不必更改客户端的代码。例如如果需要新增打折方式或修改现有的打折方式只需创建新的具体策略类或修改现有的策略类而不会影响到CashContext类或客户端的代码。这样的设计使得系统更加灵活和可维护。 另外策略模式还有利于代码的复用因为每个具体策略类都是独立的可以在不同的上下文中重复使用。同时由于算法的实现被封装到了具体策略类中客户端可以专注于业务逻辑而无需关注具体的算法实现细节。 总之策略模式通过将算法封装成独立的策略类并在运行时动态选择合适的策略实现了算法的可插拔、可扩展和可维护的特性是一种非常实用的设计模式。 package com.ss.qrcode.test;public class CashContext {private CashSuper cs;/*** 定义打折类型枚举*/public enum TYPE {/*** 正常收费*/NORMAL,/*** 打折收费*/CASH_DISCOUNT,/*** 返利收费*/CASH_RETURN}public CashContext(TYPE t) {switch (t) {case NORMAL:cs new CashNormal();break;// 假设打八折case CASH_DISCOUNT:cs new CashDiscount(0.8);break;// 满300返100case CASH_RETURN:cs new CashReturn(300, 100);break;default:System.out.println(匹配不符 );}}/*** 定义获取最终价格的方法*/public double getResult(double money) {return cs.acceptCash(money);}public static void main(String[] args) {// 输入原价计算打折后的价格// 正常收费CashContext context1 new CashContext(TYPE.NORMAL);double result1 context1.getResult(1000);System.out.println(正常收费结果 result1);// 打折收费CashContext context2 new CashContext(CashContext.TYPE.CASH_DISCOUNT);double result2 context2.getResult(1000);// 八折System.out.println(打折收费结果 result2);// 返利收费CashContext context3 new CashContext(TYPE.CASH_RETURN); // 满300返100double result3 context3.getResult(1000);System.out.println(返利收费结果 result3);} } public class CashDiscount implements CashSuper{// 折扣率private double moneyDiscount;public CashDiscount(double moneyDiscount){this.moneyDiscount moneyDiscount;}Overridepublic double acceptCash(double money) {return money*moneyDiscount;} }public class CashNormal implements CashSuper{Overridepublic double acceptCash(double money) {return money;} } public class CashReturn implements CashSuper {private double moneyCondition; // 满足返利条件的金额private double moneyReturn; // 返利金额public CashReturn(double moneyCondition, double moneyReturn) {this.moneyCondition moneyCondition;this.moneyReturn moneyReturn;}Overridepublic double acceptCash(double money) {double result money;if (money moneyCondition) {// 计算返利金额result money - Math.floor(money / moneyCondition) * moneyReturn;}return result;} } 策略模式的Strategy类层次为Context定义了一系列的可供重用的算法或行为。继承有助于析取出这些算法中的公共功能。对于打折、返利或者其他的算法其实都是对实际商品收费的一种计算方式通过继承可以得到它们的公共功能公共的功能就是获得计算费用的结果GetResult这使得算法间有了抽象的父类CashSuper。另外一个策略模式的优点是简化了单元测试因为每个算法都有自己的类可以通过自己的接口单独测试。 每个算法可保证它没有错误修改其中任一个时也不会影响其他的算法。这真的是非常好
http://www.hkea.cn/news/14524808/

相关文章:

  • 做网站用微软雅黑侵权吗wordpress怎么修改头像
  • 长安区建设局网站线上推广方式有哪些渠道
  • 建设银行网站电脑版wordpress代码风格主题
  • 如何建立自己的摄影网站美食网站首页设计
  • 做网站被骗五千多做网站还需要兼容ie8吗
  • 网站设计的研究方案军事新闻视频
  • 常见网站建设工具有哪些怎么做网站关键词推广
  • 北京最大的网站建设有限公司自己做h5怎么做
  • 做一普通网站需要多少钱昆山网站设计
  • 高端品牌网站建设内容富平网站建设
  • 公司对网站排名如何做绩效个人网站设计论文题目
  • 网页网站制作维护用织梦做的网站怎么上传虚拟
  • 网站地图定位用什么技术做云南省住房建设厅网站
  • 做网站建设的合同范本服装定制行业的未来和趋势
  • 制作微信公众号的网站开发wordpress小工具页脚
  • 上线了建的网站免费吗wordpress必备的插件
  • 怎样做才能让自己的网站泰安赶集网
  • 外国人做的关于中国的视频网站吗wordpress title
  • 软件培训招生深圳网站seo地址
  • 口碑好网站建设费用汕头网站制作服务商
  • 网站推广120种方法厦门市建设局网站首页
  • 前端网站做完 后端用什么做wordpress 免费弹窗插件
  • 南宁会员网站制作深圳网站搭建找谁
  • 网站制作常见问题网页微信怎么登录
  • 有哪些网站免费做推广建网站算法
  • 公司网站建设推广方案模板在线平台
  • 制作钓鱼网站的费用建网站难吗?
  • 微网站做下载链接水滴保险官方网站
  • 建设网站找什么条件苏州交通网站建设
  • 企业网站建立哪做网站预算