decorator 的 功能是动态给一个对象添加一些额外的职责。
试想一下 。一个已经创建 的对象 如何才能 动态地给他 增加功能呢 ?
对象的空间布局 是 数据值。这些数据可以是 非指针属性也可以是指针属性 。
如果呢想动态的改变 对象所具有的行为 那么 就只能使用 指针属性的 成员。
那么类里面有什么养的 成员是指针属性呢 ?
可以给他一个 成员 这个成员是一个 指针。
这个指针可以使指向类 地指针也可以指向函数的指针。
还有就是类地指向 vtable地指针。这是编译器为我们生成地!
如果 能在 对象生命周期中改变这些指针那么就有可能改变对象的行为。
实事上decorator也是这样的。不过能 java中显式的程序没有指针这种 东西。