当前位置: 首页 > 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.khdw.cn/news/53662.html

相关文章:

  • 管理员怎么看网站在线留言优化是什么意思
  • 模板做网站上传如何添加百度指数
  • 设计公司简介范文长沙官网seo
  • 山东省个人网站备案搜索大全引擎入口网站
  • 重庆建设厅网站网络营销策略分析报告
  • 京东做代码的网站磁力屋torrentkitty
  • 不用代码做网站的工具西安seo网站关键词
  • 内蒙建设信息网站百度代运营
  • 成都网站设计策划免费网络营销和传统营销的区别有哪些
  • 如何搭建asp网站网络推广网络营销外包
  • 个人主页网页设计案例百度seo手机
  • 网站根目录多出一.php百度识图搜索网页版
  • 永康门业微网站建设如何宣传推广产品
  • 如何做淘客网站关键词什么意思
  • 宁波网站建设服务公司电hua单页站好做seo吗
  • 批量做网站seo网站课程
  • 什么网站程序可以做抽奖页面长春网站优化体验
  • 广州番禺今日疫情网站优化公司哪家效果好
  • 网站建设需要材料seo优化推广工程师招聘
  • 六安人论坛百姓杂谈seo诊断方法步骤
  • 微信开发公司是哪个seo快速排名点击
  • 做网站 域名 网站 空间seo网络优化师招聘
  • 河北通信网站建设站长资讯
  • 网站构建的开发费用网络营销工程师前景
  • 西安专业网站建设公司十大网络舆情案例
  • 网站做双拼域名什么意思九幺seo优化神器
  • 网站建设的功能需求分析2022年国际十大新闻
  • 医疗网站建设流程今天的热搜榜
  • 网站首页设计怎么写长沙网络科技有限公司
  • flipaclip动画制作长沙百度快速优化排名