装饰器模式
文章内容输出来源:拉勾教育Java就业集训营;
一、概念
装饰器模式,就是给一个对象动态的增加一些新功能,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。
二、类图

三、代码实现
public interface Sourceable { // 自定义抽象方法 void method(); }
public class Source implements Sourceable { @Override public void method() { System.out.println("素颜美可以如此之美!"); } }
无装饰类的测试
public class SourceableTest { public static void main(String[] args) { Sourceable sourceable = new Source(); sourceable.method(); } }
加上装饰类
public class Decorator implements Sourceable { private Sourceable source; public Decorator(Sourceable source) { this.source = source; } @Override public void method() { source.method(); // 保证原有功能不变 System.out.println("化妆之后你会更美!"); } }
有装饰类的测试
public class SourceableTest { public static void main(String[] args) { Sourceable sourceable = new Source(); sourceable.method(); System.out.println("---------------------------------------------------"); // 接下来使用装饰类实现功能 Sourceable sourceable1 = new Decorator(sourceable); sourceable1.method(); } }
打印
四、实际意义
可以实现一个类功能的扩展。
可以动态的增加功能,而且还能动态撤销(继承不行)。
缺点:产生过多相似的对象,不易排错。

浙公网安备 33010602011771号