欢迎来到天天文库
浏览记录
ID:38527771
大小:65.50 KB
页数:4页
时间:2019-06-14
《设计模式-快餐简解-【策略模式】》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、设计模式-快餐简解-【策略模式】【策略模式应用场景举例】 比如在玩“极品飞车”这款游戏,那么游戏对车的轮胎是可以更换的,不同的轮胎在高速转弯时有不同的痕迹样式,那么针对“汽车”的配件“轮胎”就要可以变化,而且轮胎和轮胎之间是可以相互替换的,这就是典型的要应用“策略模式”的场景!从程序结构中可以看到,完全符合了前面我们的要求:“灵活”,“顺序敏感”。 【策略模式解释】 类型:行为模式 定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式使这些算法在客户端调用它们的时候能够互不影响地变化。 【策略模式UML图】 【策略模式-JAVA代码实现】 从策
2、略模式UML图中可以看到Context与接口Strategy是组合关系,即强引用关系。 新建一个轮胎接口:package strategy_interface;public interface tyre_interface { // tyre 轮胎 public void print_tyre_line();// 显示出轮胎的痕迹} 新建2个轮胎接口的实现类:4package strategy_implement;import strategy_interface.tyre_interface;//长痕迹轮胎类public class tyre_long_implem
3、ent implements tyre_interface { public void print_tyre_line() { System.out.println("在路面上显示一个长轮胎痕迹"); }}package strategy_implement;import strategy_interface.tyre_interface;//短痕迹轮胎类public class tyre_short_implement implements tyre_interface { public void print_tyre_line() { S
4、ystem.out.println("在路面上显示一个短轮胎痕迹"); }}基于一个轮胎接口来实现不同样式的轮胎样式。 组装一个Car车类:package car_package;import strategy_interface.tyre_interface;public class Car { private String make_address;// 制造地 private int death_year;// 报废年限 private int speed;// 速度 private tyre_interface tyre_interface_re
5、f;// 轮胎的样式 public String getMake_address() { return make_address; } public void setMake_address(String make_address) { this.make_address = make_address; } public int getDeath_year() { return death_year; } public void setDeath_year(int death_year) {
6、 this.death_year = death_year; } public int getSpeed() { return speed; } public void setSpeed(int speed) { this.speed = speed; } public tyre_interface getTyre_interface_ref() { return tyre_interface_ref; } public void4 setTyre_interface_ref(tyre_interf
7、ace tyre_interface_ref) { this.tyre_interface_ref = tyre_interface_ref; } public void start() { System.out.println("车的基本信息为:"); System.out.println("制造地make_address:" + this.getMake_address())
此文档下载收益归作者所有