CSDNRGY 2016-11-09 02:49 采纳率: 87.5%
浏览 2496
已采纳

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

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

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 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿