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

石家庄人力资源和社会保障局南京网络优化公司有哪些

石家庄人力资源和社会保障局,南京网络优化公司有哪些,做影视网站赚钱,网站建设方案哪家好 推荐设计模式——行为型模式,共11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。先来张图,看看这11中模式的关系: 第一类:通过父…

设计模式——行为型模式,共11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
先来张图,看看这11中模式的关系:

第一类:通过父类与子类的关系进行实现。第二类:两个类之间。第三类:类的状态。第四类:通过中间类
策略模式(strategy)

策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户。需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(可有可无,属于辅助类),提供辅助函数,关系图如下:

 

图中ICalculator提供同意的方法,
AbstractCalculator是辅助类,提供辅助方法,接下来,依次实现下每个类:

首先统一接口:

[java] view plaincopy
public interface ICalculator {
public int calculate(String exp);
}
辅助类:

[java] view plaincopy
public abstract class AbstractCalculator {

public int[] split(String exp,String opt){
String array[] = exp.split(opt);
int arrayInt[] = new int[2];
arrayInt[0] = Integer.parseInt(array[0]);
arrayInt[1] = Integer.parseInt(array[1]);
return arrayInt;
}
}
三个实现类:

[java] view plaincopy
public class Plus extends AbstractCalculator implements ICalculator {

@Override
public int calculate(String exp) {
int arrayInt[] = split(exp,"\\+");
return arrayInt[0]+arrayInt[1];
}
}
[java] view plaincopy
public class Minus extends AbstractCalculator implements ICalculator {

@Override
public int calculate(String exp) {
int arrayInt[] = split(exp,"-");
return arrayInt[0]-arrayInt[1];
}

}
[java] view plaincopy
public class Multiply extends AbstractCalculator implements ICalculator {

@Override
public int calculate(String exp) {
int arrayInt[] = split(exp,"\\*");
return arrayInt[0]*arrayInt[1];
}
}
简单的测试类:

[java] view plaincopy
public class StrategyTest {

public static void main(String[] args) {
String exp = "2+8";
ICalculator cal = new Plus();
int result = cal.calculate(exp);
System.out.println(result);
}
}
输出:10

策略模式的决定权在用户,系统本身提供不同算法的实现,新增或者删除算法,对各种算法做封装。因此,策略模式多用在算法决策系统中,外部用户只需要决定用哪个算法即可。

转载于:https://www.cnblogs.com/juniorjava/p/7834320.html

http://www.lbrq.cn/news/2701279.html

相关文章:

  • 行政还要负责网站建设新媒体吗百度上传自己个人简介
  • 重庆网站建设齐重庆零臻科技郑州seo优化哪家好
  • 做游戏模型挣钱的网站百度seo排名360
  • 天津大型网站建设网站收录查询爱站
  • 怎么做模板网站的报价表网站模板平台资源
  • 青岛网站建设设计公司百度搜索指数在线查询
  • ih5网站制作平台软文写作300字
  • 西安给公司做网站汕头网站制作设计
  • 常见的网络营销有哪些四川seo整站优化吧
  • 网站扁平化设计风格百度关键词搜索量查询
  • 网站域名不要了怎么做seo公司怎么推广宣传
  • 江西省住房城乡建设部网站上海app网络推广公司
  • 免费做推广的网站有哪些网络推广公司简介
  • 北京网站制作西安优化网站的步骤
  • 嘉兴网站开发选哪家技成培训网
  • 网站建设为风险分析网站seo优化外包顾问
  • 模板网站配置文件朋友圈推广平台
  • 网站注册地址查询青岛网站开发公司
  • 工厂网站怎么做搜索引擎推广方式
  • 网站seo公司哪家好国外媒体报道
  • 免费制作邀请函的app哈尔滨seo网络推广
  • 镇江网站关键词优化预订哪个网站是免费的
  • wordpress 文章 收藏优化大师班级优化大师
  • 服务器做网站好指数运算法则
  • 江苏优化网站关键词热度查询工具
  • wordpress简易主题5g网络优化
  • 零基础做地方门户网站网络营销的工具和方法有哪些
  • 定海区住房和城乡建设局网站公关公司一般收费标准
  • wordpress怎样发询盘推广seo是什么意思
  • 福建省城市建设厅网站2022年五月份热点事件
  • Java JDK8环境配置
  • C++写文件,open函数的参数in、out、ate、app、trunc等标志分别是什么作用?
  • cuda排序算法--双调排序(Bitonic_Sort)
  • 人工智能+虚拟仿真,助推医学检查技术理论与实践结合
  • 「数据获取」中国高技术产业统计年鉴(1995-2024年)(获取方式看绑定的资源)
  • 支持任意 MCP 协议的客户端