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

公司网站制作招聘昆明网站建设 昆明光硕

公司网站制作招聘,昆明网站建设 昆明光硕,wordpress搞笑网站源码,做证券考试的网站请直接看原文:设计模式#xff08;十一#xff09;策略模式_某移动支付系统在实现账户资金转入和转出时需要进行身份验证,该系统为用户提供了-CSDN博客 ----------------------------------------------------------------------------------------------------------------…请直接看原文:设计模式十一策略模式_某移动支付系统在实现账户资金转入和转出时需要进行身份验证,该系统为用户提供了-CSDN博客 --------------------------------------------------------------------------------------------------------------------------------  前言 当我们写代码时总会遇到一种情况就是我们会有很多的选择由此衍生出很多的if…else或者case。如果每个条件语句中包含了一个简单的逻辑那还比较容易处理如果在一个条件语句中又包含了多个条件语句就会使得代码变得臃肿维护的成本也会加大这显然违背了开放封闭原则。这一讲我们就来讲策略模式来看看它是怎么解决如上所说的问题的。 1.策略模式简介 策略模式定义 定义一系列的算法把每一个算法封装起来, 并且使它们可相互替换。策略模式模式使得算法可独立于使用它的客户而独立变化。 策略模式UML图 Context用来操作策略的上下文环境。Stragety策略的抽象。ConcreteStragetyA、ConcreteStragetyB具体的策略实现。 2.策略模式简单实现 这回我们还举武侠的例子张无忌作为一个大侠会遇到很多的对手如果每遇到一个对手都用自己最厉害的武功去应战这显然是不明智的于是张无忌想出了三种应战的策略分别对付三个实力层次的对手。 定义策略接口 策略接口有一个fighting的方法用于战斗 public interface FightingStrategy {public void fighting(); } 具体策略实现 分别定义三个策略来实现策略接口用来对付三个实力层次的对手 public class WeakRivalStrategy implements FightingStrategy {Overridepublic void fighting() {System.out.println(遇到了较弱的对手张无忌使用太极剑);} } public class CommonRivalStrategy implements FightingStrategy {Overridepublic void fighting() {System.out.println(遇到了普通的对手张无忌使用圣火令神功);} } public class StrongRivalStrategy implements FightingStrategy {Overridepublic void fighting() {System.out.println(遇到了强大的对手张无忌使用乾坤大挪移);} } 实现环境类 环境类的构造函数包含了策略类通过传进来不同的具体策略来调用不同策略的fighting方法 public class Context {private FightingStrategy fightingStrategy;public Context(FightingStrategy fightingStrategy) {this.fightingStrategy fightingStrategy;}public void fighting(){fightingStrategy.fighting();} } 客户端调用 张无忌遇到了三个对手宋青书、灭绝师太和成昆他分别采用了不同的策略来应战 public class ZhangWuJi {public static void main(String[] args) {Context context;//张无忌遇到对手宋青书采用对弱的对手的策略context new Context(new WeakRivalStrategy());context.fighting();//张无忌遇到对手灭绝师太采用对普通的对手的策略context new Context(new CommonRivalStrategy());context.fighting();//张无忌遇到对手成昆采用对强劲的对手的策略context new Context(new StrongRivalStrategy());context.fighting();} } 3.策略模式优缺点和使用场景 优点 策略模式提供了管理相关的算法族的办法。策略类的等级结构定义了一个算法或行为族。恰当使用继承可以把公共的代码转移到父类里面从而避免重复的代码。使用策略模式可以避免使用多重条件转移语句。多重转移语句不易维护它把采取哪一种算法或采取哪一种行为的逻辑与算法或行为的逻辑混合在一起统统列在一个多重转移语句里面比使用继承的办法还要原始和落后。 缺点 客户端必须知道所有的策略类并自行决定使用哪一个策略类。这就意味着客户端必须理解这些算法的区别以便适时选择恰当的算法类。换言之策略模式只适用于客户端知道所有的算法或行为的情况。策略模式造成很多的策略类每个具体策略类都会产生一个新类。有时候可以通过把依赖于环境的状态保存到客户端里面而将策略类设计成可共享的这样策略类实例可以被不同客户端使用。换言之可以使用享元模式来减少对象的数量。 使用场景 对客户隐藏具体策略(算法)的实现细节彼此完全独立。针对同一类型问题的多种处理方式仅仅是具体行为有差别时。一个类定义了很多行为而且这些行为在这个类里的操作以多个条件语句的形式出现。策略模式将相关的条件分支移入它们各自的 Strategy 类中以代替这些条件语句。
http://www.hkea.cn/news/14545895/

相关文章:

  • 医疗器械做网站到哪里先备案厦门网站关键词推广
  • 网站开发前景好吗重庆市工程建设交易中心网站
  • 网站空间域名免费秦皇岛北京网站建设
  • 个人购物网站 怎么建wordpress企业新闻
  • 学校招聘教师网站建设贵阳百度推广电话
  • 海南医院网站建设重庆专业网站推广费用
  • 没有网站怎么做百度推广通辽市北京网站建设
  • 济南网站建设正规公司3网合一网站
  • 石家庄 科技 公司 网站建设十大网站建设公司
  • 网站需求表seo网站优化培训多少价格
  • 海外人才招聘网站怎样用一台电脑做代理 让别的电脑通过代理上几个网站
  • 广州商城建站系统网站域名在哪里买
  • 民权网站建设企业网站排名提升软件
  • 湖南营销型网站建设 在线磐石网络seoul是哪个国家
  • 具有价值的建网站网站建设印花税税率
  • 定制网站前准备大型电子商务建设公司
  • 有没有做羞羞事的网站湖南昌正建设有限公司网站
  • iis应用程序池与网站哪些人不适合学电子商务专业
  • 怎么做网站关键词网站建设一点通
  • 关于平面设计的网站网站建设scyiyou
  • 品牌网站设计方案坦洲网站建设公司哪家好
  • 网站不显示域名解析错误怎么办城乡建设部网站首页
  • 龙南网站建设h5网站开发公司
  • 网站建设需要掌握哪些知识字体设计艺术字
  • 怎么做各个地图网站的认证网站开发的验收标准
  • 效果图网站猪八戒厦门市住宅建设办公室网站
  • 配资网站开发是什么意思敬请期待前一句
  • 萧县做网站seo自己做网站吗
  • 做淘客网站哪个cms好计算机培训机构收费
  • 制作婚恋网站网站里的搜索怎么做