Notes
Search…
Decorator
装饰器模式通过组合给原始类添加增强功能,并且支持多个装饰器嵌套使用。如下所示,装饰器类与原始类需要继承相同的接口,典型的例子是 JDK 的 InputStream:
1
public interface IA {
2
void f();
3
}
4
5
public class A impelements IA {
6
public void f() { //... }
7
}
8
9
public class ADecorator impements IA {
10
private IA a;
11
public ADecorator(IA a) {
12
this.a = a;
13
}
14
15
public void f() {
16
// 功能增强代码
17
a.f();
18
// 功能增强代码
19
}
20
}
Copied!
可以看出,代理模式与装饰器模式的代码结构非常类似。区别是代理类附加的是跟原始类无关的功能,装饰器类附加的是跟原始类相关的功能。
Last modified 1yr ago
Copy link