美文网首页
装饰器模式

装饰器模式

作者: YAOPRINCESS | 来源:发表于2020-09-28 11:54 被阅读0次
    package com.kang.patterndesign.decorator;
    
    /**
     * @author klr
     * @create 2020-09-28-11:39
     */
    public class DecoratorTest {
        public static void main(String[] args) {
            //对原有的第一代机器人进行装饰
            new OtherDecorator(new RobotOne()).doMoreThing();
        }
    }
    
    //机器人接口
    interface Robot {
        void doSomething();
    }
    
    //第一代机器人
    class RobotOne implements Robot {
    
        @Override
        public void doSomething() {
            System.out.println("唱歌");
        }
    }
    
    //使用装饰器模式,在第一代机器人身上扩展
    abstract class RobotDecorator implements Robot {
    
        //组合
        private Robot robot;
        //使用构造器把第一代机器人传进来
    
        public RobotDecorator(Robot robot) {
            this.robot = robot;
        }
    
        @Override
        public void doSomething() {
            robot.doSomething();
        }
    
        public void doMoreThing() {
            robot.doSomething();
            System.out.println("跳舞");
        }
    }
    
    class OtherDecorator extends RobotDecorator {
    
        public OtherDecorator(Robot robot) {
            super(robot);
        }
    }
    

    相关文章

      网友评论

          本文标题:装饰器模式

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