proxy是代理的意思。其实我更感觉想某种意义上的封装,例如最常用的智能指针,和android的AutoLock,都是利用对象的
构造和析购函数来完成创建和清理的工作,那么代理类有什么需要注意的吗?
proxy和被代理的对象必须有同样的接口,这保证了client使用proxy和使用被代理对象一致。这种问题我从来没有从面向对象的角度去考虑过,以前肯定做过代理类,但是没想到过从同一个基类派生。
代理类的作用,
1 远程代理,当被代理在另外一个进程中,需要这种代理,来完成解列和列集的过程,这个在DCOM可能比较常见。这么讲的话,android的Bn,Bp都是代理了。
2 虚代理,对于那种资源创建消耗较大的情况,用代理类封装下接口,在别的地方去创建资源。能够单开一个线程去初始化资源啊??
一般是考虑实际需要的时候才去初始化。
3 智能指针...
proxy和其他的比较。
1 adapter:明显不同,adapter可没要求保持与被代理者的接口一致,它是一个功能转换的功能。
2 decorator:目的不同,decorator是为了增加功能