| 意图 | 动态叠加职责,接口不变 |
|---|---|
| 形态 | 同一接口 + 持有被装饰对象 |
| 实例 | Java IO 管道、HTTP 中间件链 |
Java 示例
Java 示例
InputStream in = new BufferedInputStream(
new GZIPInputStream(
new FileInputStream(path)));中间件/装饰链的执行顺序即包装顺序:排查问题先确认层序。
在不改变接口的前提下为对象叠加行为:层层包装(如流处理、压缩、加密、缓存)可自由组合;相比继承,组合方式在运行期决定。
| 意图 | 动态叠加职责,接口不变 |
|---|---|
| 形态 | 同一接口 + 持有被装饰对象 |
| 实例 | Java IO 管道、HTTP 中间件链 |
InputStream in = new BufferedInputStream(
new GZIPInputStream(
new FileInputStream(path)));