21
2020
10

什么是策略模式?

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


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


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


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


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

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

    }

}


程序执行的结果:


骑自行车



« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。