zoukankan      html  css  js  c++  java
  • [一天一个设计模式]-[装饰器模式]

    装饰器模式的可以在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能),它属于对象结构型模式。

    装饰器模式和适配器模式的区别:

    适配器模式是把一个类型转变成另一个类型,并且保持原类型的功能不变

    装饰器模式是把一个类型的功能进行扩展,类型保持不变。

    举个栗子:一个小朋友要穿衣服

    interface Child{
        void wear();
    }
    
    class Li implements Child{
        @Override
        void wear(){
            sout("I'm Li");
        }
    }
    
    class JacketDecorator implements Child{
        Child child;
        public JacketDecorator(Child child){
            this.child = child;
        }
        
        @Override
        void wear(){
            child.wear();
            dosomething();
        }
        
        void dosomething(){
            sout("I wear Jacket.");
        }
        
    }
    
    class TrousersDecorator implements Child{
        Child child;
        public TrousersDecorator(Child child){
            this.child = child;
        }
        
        @Override
        void wear(){
            child.wear();
            dosomething();
        }
        
        void dosomething(){
            sout("I wear Trousers.");
        }
        
    }
    
    
    
    main(){
        Child li = new Li();
        JacketDecorator jd = new JacketDecorator(li);
        jd.wear();
        
        TrousersDecorator td = new TrousersDecorator(jd);
        td.wear();
        
    }
    
    
  • 相关阅读:
    关于2019-nCoV事件中新媒体的作用
    评估移民宇宙计划
    关于2019-nCoV事件,分析自己的焦虑心理
    肺炎阴云仍未散去,今天捡到一个贝壳
    关于新型肺炎,重点是毒性
    提高效率的方法
    《白说》读书笔记
    MIPS下载运行busybox
    camera模组笔记
    求知领域
  • 原文地址:https://www.cnblogs.com/A-yes/p/12026937.html
Copyright © 2011-2022 走看看