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

网站qq临时会话网站建设报告书范文

网站qq临时会话,网站建设报告书范文,网站群建设进度,东莞vi设计公司前言 策略模式是针对不同算法给出不同实现的方式,解耦代码,减少代码中if.....else代码书写量。 一、策略模式UNL类图 对象角色Context 上下文对象,依赖Strategy接口,一般像Context传入Strategy实现对象,执行策略方法…

前言

策略模式是针对不同算法给出不同实现的方式,解耦代码,减少代码中if.....else代码书写量。

一、策略模式UNL类图

 

对象角色
Context

上下文对象,依赖Strategy接口,一般像Context传入Strategy实现对象,执行策略方法

Strategy为不同实现类定义要执行策略的方法的接口
StrategyImpl具体算法逻辑实现类,主要是实现不同的算法实现

二、代码案例

 以计算器的案例为例,一个计算器要对两个数字进行加减乘除得算法,最终都会得到一个结果。我们把执行加减乘除看做是不同的策略。

1、抽象出计算器加减乘除策略接口

public interface CallulatorStrategy  {public double countResult(int a, int b);
}

2、定义加减乘除类的四个实现,继承CalclulatorStrategy接口

public class CallulatorAdd implement CallulatorStrategy {@Overidepublic double countResult(int a, int b) {return a  + b;}}public class CallulatorSubtract implement CallulatorStrategy {@Overidepublic double countResult(int a, int b) {return a  - b;}}public class CallulatorMultiplication implement CallulatorStrategy {@Overidepublic double countResult(int a, int b) {return a  * b;}}public class CallulatorDivision  implement CallulatorStrategy {@Overidepublic double countResult(int a, int b) {return a  / b;}}

3、定义一个策略类,用来执行策略类

public class StrategyContext {private CallulatorStrategy strategy;public StrategyContext (CallulatorStrategy strategy) {this.strategy = strategy;}public double strategyExecute (double a, double b) {this.strategy.countResult(a, b);}}

4、调用示例

public class Demo {public static void main(String[] args) {StrategyContext context = new StrategyContext (new CallulatorAdd());    System.out.println(context.strategyExecute(10, 5));context = new Context(new CallulatorSubtract());      System.out.println(context.strategyExecute(10, 5));context = new Context(new CallulatorMultiply());    System.out.println(context.strategyExecute(10, 5));}
}

三、总结 

优点

1、减少了代码中的逻辑判断

2、算法可自由切换、实际开发算法实现类可配置在配置文件、数据库中

3、扩展性好

缺点

1、 策略类会随着业务扩展越来越多

2、策略类均要对外暴露

使用场景

1、减少判断语句

2、同一个对象不同的算法实现

http://www.yayakq.cn/news/659849/

相关文章:

  • 广州微网站建设dmz100自己可以建立网站吗
  • 海阳市住房和城乡建设局官方网站百度 手机网站收录
  • 河南衣柜网站建设公司学校网站框架
  • 天津手机网站建站培训做百度竞价什么网站好
  • 上海网站关键词wordpress主题个人云盘
  • 国内外贸网站建设公司苏州关键词优化公司
  • 竞价托管网站建设株洲平台公司有几家
  • 西宁高端网站开发公司建设的网站都是怎么赚钱
  • 网站开发团队投入wordpress 网址设置
  • 企业是做app还是做网站广告设计与制作专业怎么样
  • 友情网站运营网站是什么意思
  • 做网站怎么字体全部变粗了html网页制作超链接
  • 深圳找个做网站平台的广东富盈建设有限公司企业网站
  • 四川城乡建设网站证件查询wordpress所有人提问
  • 网站开发代码 免责声明找最新游戏做视频网站有哪些
  • 房地产型网站建设百度seo sem
  • ppt模版模板免费网站找人做彩票网站有哪些
  • ppt做的模板下载网站有哪些内容外贸网站推广外包
  • 黄楼企业建站流程沈阳建站程序
  • 北京网站制作公司飞沐阜阳集团网站建设
  • 浙江建设部网站个人dw网页设计
  • 广州微信网站建设费用芜湖镜湖区做网站公司
  • 双语版网站案例重庆宣网站建设
  • 网站采集到wordpress平台交易网
  • ps制作网站首页界面外贸多语言网站建设
  • 搬瓦工做网站方法临淄信息港
  • 深圳网站建设软件开发公司wordpress图片无法居中显示
  • 做印尼购物网站如何发货网页设计免费模板情侣
  • 做任务佣金的网站番禺核酸检测点查询
  • 在线网站你们会回来感谢我的手机版网站制作