现在的位置: 首页 > 面试题 > 设计模式面试题 > 正文

9.什么是策略模式?

2022年01月03日 设计模式面试题 ⁄ 共 673字 ⁄ 字号 暂无评论
博客主机

答:策略模式是指定义一系列算法,将每个算法都封装起来,并且使他们之间可以相互替换。

 

优点:遵循了开闭原则,扩展性良好。

 

缺点:随着策略的增加,对外暴露越来越多。

 

以生活中的例子来说,比如我们要出去旅游,选择性很多,可以选择骑车、开车、坐飞机、坐火车等,就可以使用策略模式,把每种出行作为一种策略封装起来,后面增加了新的交通方式了,如超级高铁、火箭等,就可以不需要改动原有的类,新增交通方式即可,这样也符合软件开发的开闭原则。 策略模式实现代码如下:

 

/\* \* 声明旅行 \*/

interface ITrip {

void going();

}

class Bike implements ITrip {

@Override

public void going() {

System.out.println("骑自行车");

}

}

class Drive implements ITrip {

@Override

public void going() {

System.out.println("开车");

}

}

/\* \* 定义出行类 \*/

class Trip {

private ITrip trip;

 

public Trip(ITrip trip) {

this.trip = trip;

}

 

public void doTrip() {

this.trip.going();

}

}

/\* \* 执行方法 \*/

public class StrategyTest {

public static void main(String[] args) {

Trip trip = new Trip(new Bike());

trip.doTrip();

}

}

 

程序执行的结果:

 

骑自行车

Wopus问答

Wopus问答

给我留言

留言无头像?


×