CSDNRGY 2016-11-09 02:49 采纳率: 88.2%
浏览 2497
已采纳

代理模式和装饰器模式的区别是什么?

在实际的编码过程中,代理模式的应用场景是什么?装饰器模式的应用场景是什么?

spring的ioc+aop就是动态代理,可以帮助我开启hibernate的session,和commit事务

装饰器模式,在实际的环境中,在哪有所体现?

  • 写回答

6条回答 默认 最新

  • Windcharger 2016-11-09 03:30
    关注

    楼上说的都对,不是了解很深也是难理解的,最好还是去看看代码,装饰器模式和代理模式的代码很像,但是有区别:
    1、装饰器模式:需要传入 被装饰者 对象实例,就是说被装饰对象是你传过去的,你是知道这个要被装饰的对象的;
    代理模式:被代理者是 在代理类中 new 出来的,你不需要传入 被代理对象, 也就是说你不知道 被代理对象是谁;
    2、装饰器模式:在被装饰者 前后动态添加修饰,只是添加修饰可以认为是加System.out.print("****"),相当于给被装饰者传衣服什么的,是不能控制 被装饰者的;
    代理模式:在被代理者 前后添加方法,比如在前面public void method(){return;} 这样就直接返回了,看不到被代理者了,是可以做权限控制的,被代理者是可以被控制的,

    这是我觉得主要的2点区别

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?