javascript设计模式 – 代理模式原理与用法实例分
网络编程 2021-07-04 15:02www.168986.cn编程入门
这篇文章主要介绍了javascript设计模式 – 代理模式,结合实例形式分析了javascript代理模式相关概念、原理、用法及操作注意事项,需要的朋友可以参考下
本文实例讲述了javascript设计模式 – 代理模式原理与用法。分享给大家供大家参考,具体如下
介绍代理使我们很常见的一众模式,proxy,nginx都称之为代理,代理是什么意思呢?代理模式在客户端和目标对象之间加入一个新的代理对象,代理对象起到一个中介作用,去掉客户不能看到的内容和服务,或者增添客户需要的额外服务。
定义给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式是一种对象结构型模式。
场景我们还是以画图形为例,我将所有的绘图动作包装到Shape类中,使用代理模式来部分开放功能给客户。
示例
var Shape = function(color){ console.log('创建了一个对象'); this.color = color; this.x; this.y; this.radius; this.setAttr = function(x, y, radius){ this.x = x; this.y = y; this.radius = radius; } this.drawCircle = function(){ console.log('画圆 颜色' + this.color + ' x:' + this.x + ' y:' + this.y + ' radius:' + this.radius) } this.drawSquare = function(){ console.log('画方 颜色' + this.color + ' x:' + this.x + ' y:' + this.y ) } this.drawTriangle = function(){ console.log('画三角 颜色' + this.color + ' x:' + this.x + ' y:' + this.y ) } } var proxyShape = function(color, x, y, radius){ this.color = color; this.x = x; this.y = y; this.radius = radius; this.shape = null; this.drawSquare = function(){ if(this.shape === null){ this.shape = new Shape(this.color); this.shape.setAttr(this.x, this.y, this.radius); } this.shape.drawSquare(); } } var square = new proxyShape('red', 10, 10); square.drawSquare(); square.drawSquare(); // 创建了一个对象 // 画方 颜色red x:10 y:10 // 画方 颜色red x:10 y:10
你可以在proxyShape中增加一些日志,权限等任务。因为代理类的存在,新增的任务不会影响到Shape类。
代理模式为对象的简介访问提供了解决方案,可以对对象的访问进行控制。
代理模式
优点
代理模式可以协调调用者和被调用这,一定程度降低了系统耦合度。
缺点
由于增加了代理对象,有些类型的代理模式可能会造成请求的处理速度变慢。
实现代理模式需要额外的工作,有些代理模式的实现非常复杂。
适用场景
当客户端需要访问远程主机中的对象时,可以使用远程代理。
当需要用一个消耗资源较少的对象来代表资源消耗较多的对象,可以使用虚拟代理
当需要控制一个对象的访问,为不同用户提供不同级别的访问权限时可以使用保护代理
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具测试上述代码运行效果。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题《》、《》、《》、《》及《》
希望本文所述对大家JavaScript程序设计有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程