【设计模式】装饰模式(Decorator)

tech2022-08-14  138

概述

装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实,Decorator 模式相比生成子类更为灵活

适用性

在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责处理那些可以撤消的职责当不能采用生成子类的方法进行扩充时

案例

public interface Sourceable { public void method(); } public class Source implements Sourceable { @Override public void method() { System.out.println("the original method!"); } } public class Decorator implements Sourceable { private Sourceable source; public Decorator(Sourceable source){ super(); this.source = source; } @Override public void method() { System.out.println("before decorator!"); source.method(); system.out.println("after decorator!"); } } public class DecoratorTest { public static void main(String[] args) { Sourceable source = new Source(); Sourceable obj = new Decorator(source); obj.method(); } } // 输出 // before decorator! // the original method! // after decorator!
最新回复(0)