美文网首页
策略模式

策略模式

作者: 未央不了 | 来源:发表于2019-11-11 13:50 被阅读0次

    什么是策略模式

    1.策略其实就是各种行为.当我们出门的时候会选择多种的出行方式,比如坐公交,骑自行车,坐飞机,做高铁.这都是行为,也就是策略.但他们都有共同的特性,其实是一种行为--出行.其实放在Java中可以这么认为,他们都实现了一个接口-出行,然后然后做出不同的实现出行的方式公交,火车...

    例:

    //定义接口,出行方式
    public interface TripMode {
    
        void doTrip();
    }
    
    //实际出行时,不管是乘坐汽车,飞机
    public class Trip {
    
        TripMode tripMode;
    
        Trip(TripMode tripMode) {
            this.tripMode = tripMode;
        }
    
        public void trip() {
            tripMode.doTrip();
        }
    
        public static void main(String[] args) {
            //构建同一个对象,有不同的行为
            TripMode tripByCar = new TripByCar();
            new Trip(tripByCar).trip();
            TripMode tripByAirport = new TripByAirport();
            new Trip(tripByAirport).trip();
        }
    
        //出行方式为car
        static class TripByCar implements TripMode {
    
            @Override
            public void doTrip() {
                System.out.println("Trip by car!");
            }
        }
    
       //出行方式为airport
        static class TripByAirport implements TripMode {
    
            @Override
            public void doTrip() {
                System.out.println("Trip by airport!");
            }
        }
    
    }
    

    优缺点及应用场景

    • 优点:
      1.具体行为可以自由切换
      2.有效避免多重条件判断
      3.扩展性好,增加策略实现一个接口就行
    • 缺点:
      1.会写很多类,而且复用性很低
      2.类都需要对外暴露
    • 应用场景:
      1.多个类,行为一致,具体实现不同
      2.打折促销算法
      3.Java的Comparable接口

    相关文章

      网友评论

          本文标题:策略模式

          本文链接:https://www.haomeiwen.com/subject/kdrtictx.html