美文网首页
装饰者模式

装饰者模式

作者: 全栈未遂工程师 | 来源:发表于2016-03-21 16:51 被阅读93次

    装饰者模式(Decorator)

    动态地给一个对象添加一些额外的职责,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。

    装饰者模式

    看我通俗易懂的来描述一遍:装饰者和被装饰者需要继承同一个接口或者是抽象类,被装饰者作为装饰者的一个变量。程序中原来调用被装饰者某方法func1的地方改成调用装饰者相同的那个方法func1,并且装饰者的该方法func1上添加了一些额外的功能,在方法func1中再调用被装饰着的方法func1。

    通俗解释
    package com.decorator;
    
    public interface TargetInterface {
        public void method1();
    }
    
    
    package com.decorator;
    
    public class Target implements TargetInterface {
        @Override
        public void method1() {
            System.out.println("被装饰类的方法:method1。");
        }
    }
    
    package com.decorator;
    
    public class Decorator implements TargetInterface{
        private TargetInterface t;
        public Decorator(Target t) {
            super();
            this.t = t;
        }
        public void method1(){
            System.out.println("decorator method begin:");
            t.method1();
            System.out.println("decorator method end.");
        }
    }
    
    
    package com.decorator;
    /**
     * ClassName: main 
     * @Description: 装饰模式就是给一个对象增加一些新的功能,而且是动态的,
     * 要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。
     * @author Panyk
     * @date 2015年10月13日
     */
    public class main {
        public static void main(String[] args) {
            TargetInterface d = new Decorator(new Target());
            d.method1();
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:装饰者模式

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