JavaScript设计模式之代理模式

现代商业界很流行一种叫代理商的人物,在商业界中代理商又称商务代理,是在其行业管理范围内接受他人委托,为他人促成或缔结交易的一般代理人。很多公司为了迅速占领市场,通常会选用一种叫代理商加盟的商业模式。比如快递公司,很多快递公司都会有代理商网点,发送快递时,会先把快递发到网点,然后网点就会发送到收件人手中。在程序语言中,我们把像这种一个类代表另一个类的功能的设计模式叫做代理模式。

 

代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

 

主要解决问题:在直接访问对象时带来的问题,比如说:比如对象创建开销很大、或者某些操作需要安全控制,直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层(即中间层)。

 

我们先用一个快递公司发送快递的情形,抽象出来的程序例子,来理解代理模式:

//快递公司 var ExpressCompany = { name: "某某快递公司", send: function(target){ ProxyBranch.receive(target, this.name); } }; //快递公司代理网点 var ProxyBranch = { receive: function(target, company){ target.receive(company); } }; //快递收件人 var Receiver = { name: '小明', receive:function(company){ console.log(this.name + "接收到了" + company + "发来的快递。"); } }; //快递公司发送快递给收件人 ExpressCompany.send(Receiver);

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgxjw.html