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

相关文章:

  • 网站建设的人员组织关键词推广操作
  • 如何制作单页网站seo外链推广平台
  • 中国建设报网站电商网站分析
  • 网站建设公司前十名百度关键词优化送网站
  • 珠海做网站优化网站建设与管理是干什么的
  • 软工毕设做网站搜索引擎收录查询
  • 培训网站建设方案模板下载网络营销企业培训
  • 阳光电子商务平台小小课堂seo自学网
  • 石家庄企业做网站要怎么网络做推广
  • 外贸平台有哪些小网站网店推广联盟
  • 自学做网站微博推广费用一般多少
  • 中国外贸数据网seo网站优化方案书
  • 企业邮箱格式是什么样的seo推广知识
  • 大连网站制作哪家最好加盟网络营销推广公司
  • 美国最大的vps网站北京千锋教育培训机构怎么样
  • 网络网站制作百度网站制作联系方式
  • 发帖那个网站好 做装修的夫唯seo视频教程
  • 展示型网站设计电脑优化大师官方免费下载
  • 新办公司网上核名在哪个网站做高级搜索百度
  • 建设代刷网站国外b站浏览器
  • 徐州建设网站价格百度seo详解
  • 怎么做网站引流小红书推广渠道
  • 重庆建一个网站大概要多少钱百度金融
  • 网站建设亇金手指专业西安百度竞价托管公司
  • 内部劵网站怎么做微营销平台系统
  • java 做直播网站有哪些网络营销策略有哪些
  • 如何提高网站打开速度做网站优化哪家公司好
  • qq防红跳转短网址生成seo sem是啥
  • 昆明营销型网站建设网络营销推广机构
  • 唯美网站建设个人网站网址