美文网首页
十四、装饰器和代理的区别

十四、装饰器和代理的区别

作者: 此间有道 | 来源:发表于2020-03-25 11:25 被阅读0次

1. 相同点

类图相似:


代理模式 装饰器模式

2. 不同点

  1. 功能
    • 装饰器用于增强新的功能,如java的Stream设计,实现拦截器,职责链等;
    • 代理用于限制或改变功能,如延迟实例化,AOP等;
  2. 关联实例的时间
    • 装饰器的实例可在运行时动态传入;
    • 代理的实例一般编译时确定;
  3. 客户端使用
    • 装饰器,客户端在使用时可以自由组合,具有主动性;
    • 代理,客户端一般处于被动,无法改变代理的逻辑;

参考:

  1. https://stackoverflow.com/questions/350404/how-do-the-proxy-decorator-adapter-and-bridge-patterns-differ

相关文章

  • 十四、装饰器和代理的区别

    1. 相同点 类图相似: 2. 不同点 功能装饰器用于增强新的功能,如java的Stream设计,实现拦截器,职责...

  • 设计模式总结

    相似设计模式的区别 装饰器和静态代理 1、装饰器模式:客户端决定装饰谁(对比静态代理) 2、静态代理:客户端不关心...

  • 代理模式和装饰器模式的区别

    代理模式和装饰器模式非常相近,本文通过举例,针对俩者的区别进行探讨。 示例:孩子会吃饭 创建孩子类,实现吃饭接口:...

  • 装饰器模式和代理模式的区别

    这两个设计模式看起来很像:对装饰器模式来说,装饰者(decorator)和被装饰者(decoratee)都实现同一...

  • 一步一步从静态代理写到动态代理

    首先静态代理写法和装饰器模式非常像,只是概念分的很细,本质是没有区别,都是用“真正干活”的类去实现方法,代理只是套...

  • 装饰者模式与代理模式区别

    代理持有被被代理对象,装饰器继承被装饰对象 被代理对象不能被直接操作,被装饰对象可以 Android中的Conte...

  • JDK和CGLIB动态代理区别

    JDK和CGLIB动态代理区别 一 JDK和CGLIB动态代理原理1、JDK动态代理利用拦截器(拦截器必须实现In...

  • 代理模式

    一,静态代理 针对于网上大多数静态代理写成装饰者模式(装饰着模式和静态代理的区别https://blog.csdn...

  • PHP设计模式-代理

    适用性 对对象加以【控制】 和适配器的区别:适配器是连接两个接口(【改变】了接口) 和装饰器的区别:装饰器是对现有...

  • 11.装饰器(注解)、深浅拷贝

    一、装饰器 1). 装饰器概述 装饰器:Python中的代理模式的实现。 对其他函数进行增强。 原则:不修改被修饰...

网友评论

      本文标题:十四、装饰器和代理的区别

      本文链接:https://www.haomeiwen.com/subject/qbdtuhtx.html