代理模式
一、代理模式的定义
为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不合适或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
RealSubject 和Proxy使用同一个接口,这样在使用真实对象的时候,可以用proxy代替。
二、代理模式的理解
- 代理模式思想上很简单,但是往往在应用上并不是那么简单。因为在实际开发中,往往我们在开发阶段并不知道抽象角色是谁,到时候我们需要根据客户的需求,动态的生成代理。这就是应用的关键了——动态代理。
- 代理模式本身其实并没有多么高明之处,重要的是如何应用代理模式而实现的业务逻辑。就像简单的纸张本身其实并没有什么价值,而纸张上写的文字才是最重要的。我个人觉得应用最深刻的应该就是AOP面向切面编程的思想了吧。而在分布式中最常见的就是WebService和RPC了吧。似乎阿里的dubbo更是对RPC良好封装。
三、优缺点
- 职责清晰
真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一件完成事务,附带的结果就是编程简洁清晰。 - 代理对象可以在客户端和目标对象之间起到中介的作用,这样起到了的作用和保护了目标对象的作用。
- .高扩展性
- 借用一句忠告,一个项目或者模块中最多不要超过5中设计模式,不然就是过度封装。这其实是所有开发者应该注意的东西。
浙公网安备 33010602011771号