策略模式

霸气de小男生 提交于 2020-04-06 05:51:30

策略模式(Strategy Pattern),我们可以和实际生活联在一起。比如我们每天上班的出行选择,可以是坐公交,也可以是开车、骑自行车等。

其实这种出行方式的选择就是策略模式的一种体现。

我们有一个抽象出来的出行概念:

出行()

然后可以有不同的具体的选择:

锻炼身体可以选择:

骑自行车()

开车方便的话,可以选择:

开车()

绿色出行除了骑行,也可以选择:

坐公交车()

其实不同的出行选择就是封装起来的对出行的不同的实现(算法)。

如下图所示:

策略模式有以下几个特点:

1、定义多个算法

2、封装算法

3、这多个算法可互换

我们可以看一下具体的代码:

/**
 * 定义抽象接口
 */
public interface Traffic {

    public void goToWork();
}

公交:

public class Bus implements Traffic{
    @Override
    public void goToWork() {
        System.out.println("坐公交车");
    }
}

开车:

public class Car implements Traffic{

    @Override
    public void goToWork() {
        System.out.println("开车");
    }
}

小明去上班:

public class XiaoMing {
    public static void main(String[] args) {
        Traffic traffic = new Bus();
        traffic.goToWork();
    }
}

执行打印输出:

今天怎么去上班:
公交车

这就是策略模式,有比较好的扩展性,能解决很多实际问题。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!