阅读笔记(九)

重新回归,继续到10个常规的软件架构模式。

概述

服务器客户端通过中间件进行交互。

应用场景

远程代理:也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在不同地址空间的事实。例如:WebService、RPC、RMI(Remote Method Invocation)等。
虚拟代理:是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。例如:利用虚拟代理来优化页面的打开速度。
安全代理:用来控制真实对象访问时的权限。一般用户对象应该在不同访问权限的时候。
智能指引:是指当调用真实的对象时,代理处理另外一些事情。例如:Spring AOP、Hibernate等。

优点

(1)通过一个代理对象完成一系列的处理,在将来的程序改动中,就会允许动态更改、添加、删除和重新定位对象,这使开发人员的发布变得透明,符合开闭原则。
(2)代理模式能够协调调用者和被调用者,在一定程度上降低了系统的耦合度。
(3)远程代理使得客户端可以访问在远程机器上的对象,远程机器可能具有更好的计算机性能与处理速度,可以快速响应并处理客户端请求。
(4)代理模式在架构中还可以让虚拟代理通过使用一个小对象来代表一个大对象,可以减少系统资源的消耗,对系统进行优化并提高运行速度。
另外代理模式的缺点也是很突出的

 

缺点

(1)要求对服务描述进行标准化,我们要使用代理模式时则需要考虑异步处理机制、协议创建流程和错误环境控制,比较的繁琐。
(2)由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。
(3)实现代理模式需要额外的工作,有些代理模式的实现非常复杂。这些问题就造成了不易开发的弱点。

 

posted on 2019-04-25 22:18  渔夫的梦  阅读(126)  评论(0编辑  收藏  举报