装饰模式与代理模式的区别

装饰模式强调装饰者与被装饰者实现同一个接口,装饰者内部声明被装饰者对象,在调用装饰者方法时会先调用被装饰者方法,在原有基础上进行处理,最终得到一个基于被装饰者方法处理结果的新结果!

代理模式在远程代理对象与被代理对象不存在包含关系,两者是分开的。本地代理虽然存在包含关系,但是本地代理在调用方法时都会走同一个代理方法,公共方法通常用来做功能增强实现公共逻辑!而此时如果需要实现公共逻辑时需要在代理类中的所有方法注入同样的公共逻辑代码,从这点上装饰模式编码效率比较低

posted on 2021-10-11 22:09  宋梦强  阅读(260)  评论(0编辑  收藏  举报