| 作者 |
内容 |
| 寂寞的意义 |
设计模式问题,请教高手:Proxy和Decorator的区别
----我觉得二者的意图区别不大,Decorator是为动态添加额外功能而设置的,而Proxy是提供一种代理一控制对这个对象的访问,应该说也就是限制了被代理对象的一些功能,从这个角度说,其实也是为该对象增加了一种额外的功能啊,这种功能就是“限制原有功能使用”。(哦,我好像没有说清楚)
请高手指点。 |
| 01/09/25 21:47 |
酷帖! 臭帖! 回复 |
| 酷帖评价: 臭帖评价: |
| 返回页首 |
|
| potian |
两者的意图风马牛不相及
decorator:主要处理组合爆炸问题,接口透明
proxy:主要处理不能直接存取到的信息、需要部分加载的数据或者需要预处理后处理的数据,真正处理信息的位置透明
应用实例:
decorator接口保持统一,所以你能包装之上加包装,改变包装的顺序,不是采用直接继承,不会形成子类组合爆炸,。最后形成一个对象链,直至最内核。典型用法:Java
Stream 框架
proxy隐藏信息的真正位置,使得你的信息对客户代码总是可用的,但是可能采用部分加载(如浏览一万个对象,你第一次获取时只取得OID,当客户代码需要时,再加载该对象的全部信息。),或者是分布式应用,象EJB模型,总是在客户端有一个proxy,当客户代码调用一个EJB对象的方法时,其实该对象使用代理把方法交给EJB容器处理。你可以叫RMI编译时不删除产生中间代码,里面能够清楚地看到代理模式的使用。
|
| 01/09/26 09:27 |
酷帖! 臭帖! 回复 |
| 酷帖评价: 臭帖评价: |
| 返回页首 |
|
| 寂寞的意义 |
谢谢!
谢谢! |
| 01/09/26 11:34 |
酷帖! 臭帖! 回复 |
| 酷帖评价: 臭帖评价: |
| 返回页首 |
|
| potian |
下次直接贴到erptao.org的论坛上,我不一定经常来这里
|
| 01/09/26 11:50 |
酷帖! 臭帖! 回复 |
| 酷帖评价: 臭帖评价: |
| 返回页首 |
|
|