设计模式-快餐简解-【策略模式】

设计模式-快餐简解-【策略模式】

ID:38527771

大小:65.50 KB

页数:4页

时间:2019-06-14

设计模式-快餐简解-【策略模式】_第1页
设计模式-快餐简解-【策略模式】_第2页
设计模式-快餐简解-【策略模式】_第3页
设计模式-快餐简解-【策略模式】_第4页
资源描述:

《设计模式-快餐简解-【策略模式】》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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())

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。