JavaScript设计模式之代理模式简单实例教程

 更新时间:2018年07月03日 09:28:12   作者:CangoWu  
这篇文章主要介绍了JavaScript设计模式之代理模式,简单描述了代理模式的概念、功能、组成并结合实例形式较为详细的分析了javascript代理模式的定义与使用相关操作技巧,需要的朋友可以参考下

本文实例讲述了JavaScript设计模式之代理模式。分享给大家供大家参考,具体如下:

一、代理模式概念

代理,顾名思义就是帮助别人做事,GoF对代理模式的定义如下:

代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。代理模式使得代理对象控制具体对象的引用。代理几乎可以是任何对象:文件,资源,内存中的对象,或者是一些难以复制的东西。

解释:房屋中介,可以代理帮助卖家把房子卖给买家,这中间卖家说要卖的价钱就可以了,买家也可以提出自己要买的房型,中介可以帮忙处理中间环节。最后达成买卖。中介可以同时代理很多房屋买卖,并且可以代理租房事宜。

代理模式的组成:

抽象角色:通过接口或抽象类声明真实角色实现的业务方法。

代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。

真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。

二、代理模式的作用和注意事项

模式作用:

1、远程代理(一个对象将不同空间的对象进行局部代理)

2、虚拟代理(根据需要创建开销很大的对象如渲染网页暂时用占位代替真图)

3、安全代理(控制证实对象的访问权限)

4、智能指引(调用对象代理处理另外一些事情如垃圾回收机制)

注意事项:

1、不能滥用代理,有时候仅仅是给代码增加复杂度

三、代理模式代码和实战总结

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title>代理模式</title>
</head>
<body>
<script>
 //代理模式需要三方
 //1.买家
 function maijia(){
  this.name = "小明";
  this.money = "30万";
 }
 //2.中介
 function zhongjie(){
 }
 zhongjie.prototype.maifang = function(){
  //new fongdong(new maijia()).maifang("20万");
  new fongdong(new maijia()).maifang("20万");
 }
 //3.卖家
 function fongdong(maijia){
  this.maijia_name = maijia.name;
  this.maijia_money = maijia.money;
  this.maifang = function(money){
//   console.log("收到了来自【"+this.maijia_name+"】"+money+"人民币");
   console.log("收到了来自【"+this.maijia_name+"】"+this.maijia_money+"人民币");
  }
 }
 (new zhongjie()).maifang();
</script>
<script>
// A2B
 function A(){
  this.money = "20RMB";
 }
 function to(){
  if(!(this instanceof to)){
   return new to;
  }
 }
 to.prototype.maifang = function(){
  var a = new A();
  new B().maifang(a.money);
 }
 function B(){
  this.maifang = function(money){
   console.log("收到了钱"+money);
  }
 }
 (new to()).maifang();
 to().maifang();
</script>
</body>
</html>

使用在线HTML/CSS/JavaScript代码运行工具 http://tools.jb51.net/code/HtmlJsRun测试运行效果如下:

更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

相关文章

  • layer弹出层的关闭问题详解之在执行完毕后关闭当前弹出层

    layer弹出层的关闭问题详解之在执行完毕后关闭当前弹出层

    在前端页面中用layer打开窗口供用户输入或选择是非常常见的用法,但是有时为了完成一次操作,需要弹出多个窗口进行选择、输入或者提示,因此在关闭窗口的时候需要实现指定关闭任意窗口,需要的朋友可以参考下
    2023-10-10
  • 使用typescript推导已有变量的盲盒类型详情

    使用typescript推导已有变量的盲盒类型详情

    这篇文章主要介绍了使用typescript推导已有变量的盲盒类型详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • 基于Bootstrap框架菜鸟入门教程(推荐)

    基于Bootstrap框架菜鸟入门教程(推荐)

    下面小编就为大家带来一篇基于Bootstrap框架菜鸟入门教程(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 仅9张思维导图帮你轻松学习Javascript 就这么简单

    仅9张思维导图帮你轻松学习Javascript 就这么简单

    仅9张思维导图帮你轻松学习Javascript,从javascript变量、javascript运算符、javascript函数基础等多方面了解Javascript,就这么简单
    2016-06-06
  • JS创建对象的写法示例

    JS创建对象的写法示例

    这篇文章主要介绍了JS创建对象的写法,结合实例形式分析了javascript对象的定义、实现方法与使用技巧,需要的朋友可以参考下
    2016-11-11
  • 捕获和分析JavaScript Error的方法

    捕获和分析JavaScript Error的方法

    这篇文章主要介绍了如何捕获和分析 JavaScript Error,感兴趣的朋友可以参考下
    2014-03-03
  • JavaScript中常见的继承方式总结

    JavaScript中常见的继承方式总结

    这篇文章主要和大家详细介绍了JavaScript中常见的几种继承方式,文中的示例代码讲解详细,对我们学习JavaScript有一定帮助,需要的小伙伴可以参考下面文章详细内容
    2022-11-11
  • 微信小程序实现表单验证

    微信小程序实现表单验证

    这篇文章主要为大家详细介绍了微信小程序实现表单验证,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • arcgis for js 修改infowindow样式的方法

    arcgis for js 修改infowindow样式的方法

    下面小编就为大家带来一篇arcgis for js 修改infowindow样式的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • JS表格组件神器bootstrap table详解(强化版)

    JS表格组件神器bootstrap table详解(强化版)

    这篇文章主要以实例的方式为大家再次介绍了JS表格组件神器bootstrap table,bootstrap table界面采用扁平化的风格,用户体验比较好,更好兼容各种客户端,需要了解更多bootstrap table的朋友可以参考下
    2016-05-05

最新评论