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();
        
    }
    
    
  • 相关阅读:
    [NoiPlus2016]换教室
    [HNOI2013]游走
    [Noi2002]Savage
    [SDOI2010]古代猪文
    [JSOI2008]最小生成树计数
    [SCOI2010] 连续攻击游戏
    文艺平衡树
    指针FHQTreap
    HAOI2007 上升序列
    HNOI2008 玩具装箱
  • 原文地址:https://www.cnblogs.com/A-yes/p/12026937.html
Copyright © 2011-2022 走看看