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

做物流网站的公司哪家好/新品怎么推广效果最好

做物流网站的公司哪家好,新品怎么推广效果最好,徐州做网站的设计师,医生咨询在线24小时免费一、什么是策略模式? 在策略模式中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的…

一、什么是策略模式?

在策略模式中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。

在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。

意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。

主要解决:在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护。

何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。

如何解决:将这些算法封装成一个一个的类,任意地替换。

关键代码:实现同一个接口。

优点: 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。

缺点: 1、策略类会增多。 2、所有策略类都需要对外暴露。

使用场景: 1、如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。 2、一个系统需要动态地在几种算法中选择一种。 3、如果一个对象有很多的行为,如果不用恰当的模式,这些行为就只好使用多重的条件选择语句来实现。

注意事项:如果一个系统的策略多于四个,就需要考虑使用混合模式,解决策略类膨胀的问题。

二、策略模式实现:

以四种运算为例。

1.创建运算接口。

/*** 运算接口* @author Administrator**/
public interface Operation {//运算方法int doOperation(int num1,int num2);
}

2.创建加、减、乘、除类实现运算接口,并实现运算方法。

/*** 和运算	实现  运算接口* @author Administrator**/
public class Add implements Operation{@Overridepublic int doOperation(int num1, int num2) {return num1+num2;}
}
/*** 减运算	实现  运算接口* @author Administrator**/
public class Sub implements Operation{@Overridepublic int doOperation(int num1, int num2) {return num1-num2;}
}

 

/*** 乘运算	实现  运算接口* @author Administrator**/
public class Multiply implements Operation {@Overridepublic int doOperation(int num1, int num2) {return num1 * num2;}
}
/*** 除运算	实现  运算接口* @author Administrator**/
public class Divide implements Operation {@Overridepublic int doOperation(int num1, int num2) {return num1 / num2;}
}


3.创建Context类来通过传入对象,调用对应对象的运算方法

public class Context {//运算对象private Operation operation;//通过构造方法传入运算对象public Context(Operation operation){this.operation = operation;}//执行运算方法public int executeOperation(int num1,int num2){//调用传入运算对象的运算方法并返回结果return operation.doOperation(num1, num2);}
}

4.测试类:

public class Demo {public static void main(String[] args) {//传入对象为  和    运算对象Context context = new Context(new Add());int result = context.executeOperation(1, 2);System.out.println("和:"+result);//传入对象为  差    运算对象context = new Context(new Sub());result = context.executeOperation(1, 2);System.out.println("差:"+result);//传入对象为  积    运算对象context = new Context(new Multiply());result = context.executeOperation(1, 2);System.out.println("积:"+result);//传入对象为  商     运算对象context = new Context(new Divide());result = context.executeOperation(1, 2);System.out.println("商:"+result);}
}

5.测试结果:

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

相关文章:

  • 怎样做网站banner/怎么建立公司网站
  • 西宁网站建设公司/接外包网站
  • 有什么设计logo网站/整站seo排名
  • 自己电脑做服务器搭网站/seo公司
  • 评价一个网站的优缺点/快速seo优化
  • 武汉北京网站建设公司/网站备案
  • 网站系统繁忙是什么原因/上首页的seo关键词优化
  • 天津网站建设好公司/江阴网站制作公司
  • kilu wordpress/公司seo是指什么意思
  • 赚钱软件 真实游戏/seo优化方案模板
  • 肇庆搞产品网站的公司/免费s站推广网站
  • 手机网站建设与制作/引流软件下载站
  • 写真盗版网站怎么做/宣传软文怎么写
  • 南昌好的做网站的公司/鞍山网络推广
  • 域名链接网站/营销策划方案怎么写?
  • 个人做网站 优帮云/app开发自学教程
  • 如何做psd的模板下载网站/网页制作工具
  • 淘口令微信网站怎么做/百度收录教程
  • 广州品牌策划公司/网站搜索引擎优化诊断
  • 怎样做网站地图/百度网盘下载慢
  • 成都网站建设培训/手机seo关键词优化
  • 大连网站建设优化/电商运营模式
  • 做 理财网站有哪些/搜索引擎竞价排名
  • 山东华邦建设集团网站/优化网站链接的方法
  • 网站汉英结合的怎么做/云南网络推广公司排名
  • 榆林网站建设推广/2345网址导航下载
  • 网站作业免费下载/网站建设百度推广
  • 空间放两个网站/武汉抖音seo搜索
  • 河南外贸网站建设/seo网站推广实例
  • 东莞东坑网站设计/发帖子的网站
  • 【项目实践】在系统接入天气api,根据当前天气提醒,做好plan
  • 13015计算机系统原理-速记宝典
  • 控制建模matlab练习08:根轨迹
  • JavaWeb学习------SpringCloud入门
  • 第九章:了解特殊场景下的redis
  • uniapp 数组的用法