Decorator 与 Proxy 都涉及到 兄弟类之间的 修饰
Decorator 目的在于 为兄弟类 增加更多功能
Proxy 在于 控制兄弟类的接口访问
Decorator
注:Decorator 类 假如不存在,scrollDecrator依然可以直接操作component,但是中间多一个Decorator,可以提供 dynamic_cast
BorderDecorator 通过在 虚接口 Draw中调用Decorator::Draw完成组件职责外,插入了自己的工作内容。
如上所示,DrawBorder就是 BorderDecorator新引入的功能。
诚然,通过继承比如(TextView)然后重写Draw也可以达到一样的效果,但是就避免不了类爆炸
Proxy
与Decorator大同小异,可将Proxy类看作 Decrator中的Decorator类,负责代理 调用组件方法的同时,插入一些逻辑控制代码。
在 组件方法调用时,插入逻辑控制代码,就是Proxy的核心