共同点:
- 都要实现与目标类相同的业务接口
- 在俩个类中都要声明目标对象
- 都可以在不修改目标类的前提下增强目标方法
不同点:
-
目的不同
装饰者: 简单说就是为了增强目标对象
静态代理 : 为了保护和隐藏目标对象
- 对于目标对象的获取方式不同
装饰者中目标对象的获取,通过代参构造器传入
静态代理类中,是在无参构造器中直接创建。
- 功能增强的实现者不同
装饰者模式中存在装饰者基类,其并不能实现增强,而是由具体的装饰者进行增强的,所以其存在着"装饰者链"
静态代理中,一般不存在父子类的关系,具体的增强,就是由代理类实现的。无需其子类完成,所以不存在 链 的概念
装饰者与静态代理模式异同解析
本文对比了装饰者模式和静态代理模式。二者共同点是都实现相同业务接口、声明目标对象,可在不修改目标类时增强目标方法。不同点在于目的、目标对象获取方式和功能增强实现者,装饰者为增强对象,静态代理为保护隐藏对象。
784

被折叠的 条评论
为什么被折叠?



