策略模式

package tutor23;

import java.util.Scanner;

public class Client {
    public static void main(String[] args) {

        Person p = new Person();

        System.out.println("请选择出行方式:1、飞机 2、火车 3、自行车");

        Scanner input=new Scanner(System.in);

        int i=input.nextInt();

        if(i==1) {
            p.setStrategy(new AirplaneStrategy());
        }else if(i==2) {
            p.setStrategy(new TrainStrategy());
        }else if(i==3) {
            p.setStrategy(new BicycleStrategy());
        }

        p.travel();

    }
}
class AirplaneStrategy implements TravelStrategy{



    public void travel() {

        System.out.println("乘坐飞机旅行");

    }

}
class BicycleStrategy implements TravelStrategy{



    public void travel() {

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

    }

}
class Person {

//聚合策略类对象

    private TravelStrategy strategy;

    public void setStrategy(TravelStrategy strategy) {

        this.strategy=strategy;

    }

    public void travel() {

        strategy.travel();

    }

}
class TrainStrategy implements TravelStrategy{



    public void travel() {

        System.out.println("乘火车旅行");

    }



}
interface TravelStrategy {

    public void travel();

}

 

posted @ 2021-11-20 20:17  {hunter}ZY  阅读(31)  评论(0编辑  收藏  举报