装饰模式

Posted ffeiyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了装饰模式相关的知识,希望对你有一定的参考价值。

本文章,摘抄自:2018黑马程序最新面试题汇总

顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。

1 public interface ISourceable {
2 
3     public void method();
4 }
1 public class Source implements ISourceable {
2 
3     @Override
4     public void method() {
5         System.out.println("the original method");
6     }
7 
8 }
 1 public class Decorator implements ISourceable {
 2 
 3     private ISourceable source;
 4 
 5     public Decorator(ISourceable source) {
 6         super();
 7         this.source = source;
 8     }
 9 
10     @Override
11     public void method() {
12         System.out.println("before decorator");
13         source.method();
14         System.out.println("after decorator");
15     }
16 
17 }

测试方法:

1 @Test
2     public void test() {
3         ISourceable sourceable = new Source();
4         ISourceable obj = new Decorator(sourceable);
5         obj.method();
6     }

 

以上是关于装饰模式的主要内容,如果未能解决你的问题,请参考以下文章

Thymeleaf 模板 - 有没有办法装饰模板而不是包含模板片段?

swift设计模式学习 - 装饰模式代码大全

设计模式---装饰者模式

设计模式之单例模式

装饰模式与代理模式的区别

Java设计模式之装饰者模式