java设计模式(精通系列)-策略模式(Strategy)

来源:互联网 发布:斧王攻略知乎 编辑:程序博客网 时间:2024/05/18 17:44

策略模式:更改不同的策略

public class App {    public static void main(String[] args) {        DragonSlayer dragonSlayer=new DragonSlayer(new MeleeStrategy());        dragonSlayer.goToBattle();        System.out.println("红龙出现");        dragonSlayer.changeStrategy(new ProjectileStratety());        dragonSlayer.goToBattle();        System.out.println("黑龙出现在你身边");        dragonSlayer.changeStrategy(new SpellStrategy());        dragonSlayer.goToBattle();    }}
public class DragonSlayer {    private  DragonSlayingStrategy strategy;    public DragonSlayer(DragonSlayingStrategy strategy){        this.strategy=strategy;    }    public void changeStrategy(DragonSlayingStrategy strategy){        this.strategy=strategy;    }    public void goToBattle(){        strategy.execute();    }}
public interface DragonSlayingStrategy {    void execute();}
public class MeleeStrategy implements DragonSlayingStrategy{    @Override    public void execute() {        System.out.println("拿着宝剑去屠龙");    }}
public class ProjectileStratety  implements  DragonSlayingStrategy{    @Override    public void execute() {        System.out.println("你杀死了巨龙");    }}
public class SpellStrategy implements DragonSlayingStrategy{    @Override    public void execute() {        System.out.println("使用了魔法使龙蒸发");    }}

结果如下:

拿着宝剑去屠龙
红龙出现
你杀死了巨龙
黑龙出现在你身边
使用了魔法使龙蒸发

原创粉丝点击