代理模式:个人感觉代理模式就是在访问一个对象时添加一种间接性。俩对象实现相同的接口,在代理实例中组合进实际类,并用实际类去实现代理类的接口,在不污染实际类的情况下做很多事情。(这个模式我自己是没用过也是看书的,所以有问题欢迎评论留言我改正。)
装饰器模式是获取一个引用并通过引用赋予其扩展功能。代理就是获取这个类的引用,并具有和这个类完全一样的方法(也就是实现相同的方法)然后你对类的所有访问都可以通过这个代理取间接调用。
------在什么时候用代理模式呢!下面的话全都来自设计模式一书,我将其简化了
1、远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。
2、虚拟代理,根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。
3、安全代理,用来控制真实对象访问时的权限。
4、智能指引,是指当调用真实对象时,代理处理另一些事情。