装饰者模式

装饰者模式(Decorator)

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

装饰者模式_第1张图片
装饰者模式

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

装饰者模式_第2张图片
通俗解释
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();
    }

}

你可能感兴趣的:(装饰者模式)