Head First设计模式读书笔记-第十一章 Proxy Pattern 代理模式

代理模式

代理:控制管理和访问

 

远程代理

Head First设计模式读书笔记-第十一章 Proxy Pattern 代理模式

 

制作远程服务的步骤:

  1. 制作远程接口
  2. 制作远程实现
  3. 利用rmic产生stub和skeleton
  4. 启动RMI registry
  5. 开始远程服务

 

原语类型(primitive)或者可序列化类型(Serializable):原语类型即基本类型,可序列化类型即实现Serializable接口的类型

 

transient:让JVM在反序列化字段的时候,忽略当前项

 

定义

代理模式:为另一个对象提供一个替身或占位符以控制对这个对象的访问。

使用代理模式创建代表(representative)对象,让代表对象控制某对象的访问,被代理的对象可以是远程的对象,创建开销大的对象或需要安全控制的对象。

 

 

远程代理控制访问远程对象

Head First设计模式读书笔记-第十一章 Proxy Pattern 代理模式

虚拟代理控制访问创建开销大的资源

Head First设计模式读书笔记-第十一章 Proxy Pattern 代理模式

保护代理基于权限控制对资源的访问

 

 

装饰者:包装另一个对象,并提供额外的行为

外观:包装许多对象以简化它们的接口

代理:包装另一个对象,并控制对它的访问

适配器:包装另一个对象,并提供不同的接口

示例

通过Proxy的静态方法获取代理对象handler,通过handler控制接口的访问

Head First设计模式读书笔记-第十一章 Proxy Pattern 代理模式

第十一章总结

防火墙代理(Firewall Proxy):控制网络资源的访问,保护主题免于“坏客户“的侵害

智能引用代理(Smart Reference Proxy):当主题被引用时,进行额外的动作,如计算一个对象被引用的次数

缓存代理(Caching Proxy):为开销大的运算结果提供暂时存储:允许多个客户共享结果,以减少计算或网络延迟。

同步代理(Synchronization Proxy)在多线程的情况下为主题提供安全的访问

复杂隐藏代理(Complexity Hiding Proxy):用来隐藏一个类的复杂集合的复杂度,并进行访问控制。也称为外观代理(Façade Proxy)

写入时复制代理(Copy-On-Write Proxy):用来控制对象的复制,方法是延迟对象的复制,直到客户真的需要为止

 

远程代理管理客户和远程对象之间的交互

虚拟代理控制访问实例化开销大的对象

保护代理基于调用者控制对象方法的访问

装饰者模式为对象加上行为,而代理则是控制访问

代理会造成设计中类的数目增加

OO基础

抽象、封装、多态、继承

OO原则

封装变化

多用组合、少用继承

针对接口编程、不针对实现编程

为交互对象之间的松耦合设计努力

对扩展开放,对修改关闭

依赖抽象,不依赖具体

只和亲密朋友谈话----最少知道原则

别找我,我会找你----好莱坞原则

类应该只有一个改变的理由----单一职责原则

OO模式

代理模式---为另一个对象提供一个替身或占位符以访问这个对象