• [一天一个设计模式]-[装饰器模式]


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

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

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

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

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

    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();
        
    }
    
    
  • 相关阅读:
    varnish4 配置文件整理
    简单谈谈数据库DML、DDL和DCL的区别
    使用mysqlbinlog恢复数据
    zabbix自定义监控项
    管理python虚拟环境的工具virtuelenvwrapper
    vim的使用
    python的虚拟环境virtualenv
    编译安装python
    Linux基础(二)
    Linux基础(一)
  • 原文地址:https://www.cnblogs.com/A-yes/p/12026937.html
Copyright © 2020-2023  润新知