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

大庆市建设局网站刘东东莞网站建设快速排名

大庆市建设局网站刘东,东莞网站建设快速排名,网页设计制作项目,二级域名做网站域名前言 策略模式是针对不同算法给出不同实现的方式,解耦代码,减少代码中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.mmbaike.com/news/68055.html

相关文章:

  • 泰州专业网站制作公司搜索引擎营销的方法有哪些
  • django做网站比较容易权威seo技术
  • 装修设计网站源码无锡百度seo优化
  • 订做网站建设贵州百度seo整站优化
  • 网站改版收录减少开鲁网站seo站长工具
  • 如何自建淘宝客网站网站建设网站设计
  • 一般公司网址都怎么写电脑系统优化软件哪个好用
  • wordpress epix v1.2做seo如何赚钱
  • 在线教育网站html模板seo人才
  • 做网站的团队百度指数在线查询小程序
  • 网站目录怎么做301跳转手机百度网盘网页版登录入口
  • 自己做网站写文章深圳推广公司哪家好
  • 网站建设公司的正反搜索引擎优化内容包括哪些方面
  • 手表网站背景如何开发一个网站
  • 做网站用哪种语言好免费网站搭建
  • 聚通装潢口碑好不好百度seo免费推广教程
  • 网站底部的图标超级seo外链工具
  • WordPress怎么取消邮箱注册seo综合排名优化
  • 爱用建站正规吗网页设计代码大全
  • 是不是做网站就能赚钱广州百度seo
  • 封面设计网站互联网推广方式
  • 那些做测评的网站整站优化包年
  • 网站运营建设的目标百度小程序优化
  • 济南网站建设策划网页优化公司
  • 湖北网站建设上海网站建设seo
  • 本机iis发布网站后台管理百度推广费用可以退吗
  • 酷炫网站设计口碑优化
  • 承德公司做网站自己如何制作网站
  • 建设银行官网app安徽搜索引擎优化
  • vancl网站网站怎么优化