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

网站制作app我想做代理商

网站制作app,我想做代理商,wordpress 电台网站,win10 安装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.tj-hxxt.cn/news/232880.html

相关文章:

  • 子网站如何做视频网站后台登陆
  • 网站建设包括哪些方面的费用flash属于网页制作平台吗
  • 成都网站建设需要多少钱深圳网站建设外贸公司
  • 流媒体网站开发教程机关网站内容建设工作总结
  • 成立网站要什么手续在一个城市做相亲网站
  • 网站建设解析制作网站首页教案
  • 1免费网站建站响应式网站设计的规范
  • 关于节约化建设网站的表态发言菜单设计制作网站
  • 门户网站建设谈判网站建设行业解决方案
  • 织梦网站怎么搬家南宁网站建设培训学校
  • 网站建设申请报告怎么写慈溪建设企业网站
  • 红旗渠建设集团有限公司网站平面设计素材免费网站有哪些
  • 网站建设解决问题可以免费做3dLOGO的网站
  • 最新企业网站开发和设计软件ppt模板简约
  • 什么网站可以做设计赚钱的吗阿里巴巴外贸订单网站
  • 重庆做石材的网站官方网站下载水印相机
  • 多个网站备案吗asp网站源代码下载
  • 天津网站建设流程引蜘蛛网站
  • 苏州建设工程交易中心网站做个app需要多少费用
  • 学做美食网站功能型pc端网站框架
  • 卫生局网站建设方案wordpress换域名后
  • 网站建设市场调研报告网络营销包括哪些策略
  • 电子商务网站开发与设计网站怎么做有创意
  • 海南省建设执业中心网站深圳商业网站建设推荐公司
  • 印尼建设银行网站网站建设的维护范围
  • 上海人才网最新招聘信息官方网站软件开发输出文档
  • 界面设计最好的网站自己建立的网站
  • 站长工具域名备案查询杭州知名的企业网站建设
  • 商城建设网站制作长春网站制作wang
  • 如何建设电影网站商丘市做网站