应用:远程对象访问、Copy-On-Write
场景:为了使操作ThinkPad对应用程序透明,隔离硬件操作的复杂性,在应用程序和ThinkPad中间置入一代理层(相当于操作系统),此代理通过向应用程序提供一致的API,实现对硬件的操作。
结构
代码实现
要点:
1、在面向对象系统中,直接使用某些对象会带来带很多问题,作为间接层的代理对象是解决这一问题的常用手段。
2、该模式在具体使用的时候,实现方法、粒度都相差很大。有些可能对单个对象做细粒度的控制,如Copy-On-Write技术,有些可能对组件模块提供抽象代理层,在架构层次对对象做代理。
3、该模式并不要求保持接口一致,只要能够实现间接控制,有时损失一些透明性是可以接受的。