深入理解JavaScript系列(31):设计模式之代理模式详解
介绍
代理,顾名思义就是帮助别人做事,GoF对代理模式的定义如下:
代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。
代理模式使得代理对象控制具体对象的引用。代理几乎可以是任何对象:文件,资源,内存中的对象,或者是一些难以复制的东西。
正文
我们来举一个简单的例子,假如dudu要送酸奶小妹玫瑰花,却不知道她的联系方式或者不好意思,想委托大叔去送这些玫瑰,那大叔就是个代理(其实挺好的,可以扣几朵给媳妇),那我们如何来做呢?
//先声明美女对象 vargirl=function(name){ this.name=name; };
//这是dudu vardudu=function(girl){ this.girl=girl; this.sendGift=function(gift){ alert("Hi"+girl.name+",dudu送你一个礼物:"+gift); } };
//大叔是代理 varproxyTom=function(girl){ this.girl=girl; this.sendGift=function(gift){ (newdudu(girl)).sendGift(gift);//替dudu送花咯 } };