美文网首页
装饰者模式

装饰者模式

作者: hgzzz | 来源:发表于2019-05-07 20:38 被阅读0次
    • 在不能以继承的方式扩展类功能的情况下使用装饰者模式

    • 接口

    public interface Car {
        void start();
        void run();
        void stop();
    }
    
    • 实现类
    public class MyCar implements Car{
    
        @Override
        public void start() {
            System.out.println("start");
        }
    
        @Override
        public void run() {
            System.out.println("run");
        }
    
        @Override
        public void stop() {
            System.out.println("stop");
        }
    }
    
    • 装饰者
    public class MyCarPlus implements Car {
    
        private Car car;
    
        public MyCarPlus( Car car){
            this.car = car;
        }
        @Override
        public void start() {
            System.out.println("before start,play some music ");
            car.start();
        }
    
        @Override
        public void run() {
            car.run();
    
        }
    
        @Override
        public void stop() {
            car.stop();
        }
    }
    
    • 使用
    public class Run {
        public static void main(String[] args) {
            MyCarPlus myCarPlus = new MyCarPlus(new MyCar());
            myCarPlus.start();
        }
    }
    

    相关文章

      网友评论

          本文标题:装饰者模式

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