当前位置:首页 > CN2资讯 > 正文内容

JavaScript-代理模式

3天前CN2资讯
代理模式

使用者无权访问目标对象
中间加代理,通过代理授权和控制

传统 UML 类图

JavaScript 中的代理模式

class ReadImg {   constructor(fileName) {     this.fileName = fileName;     this.loadFromDisk();   }   display() {     console.log("display..." + this.fileName);   }   loadFromDisk() {     console.log("loading..." + this.fileName);   } } class ProxyImg {   constructor(fileName) {     this.readImg = new ReadImg(fileName);   }   display() {     this.readImg.display();   } } // test let proxyImg = new ProxyImg("1.png"); proxyImg.display();

应用场景

网页代理事件

Documenta1       a2       a3       a4       a5

jQuery

Documenta1       a2       a3       a4       a5

$.proxy

Documenta1       a2       a3       a4       a5

es6 Proxy

明星和经纪人的关系

// 明星 let star = {   name: "张XX",   age: 25,   phone: "13910733521" }; // 经纪人 let agent = new Proxy(star, {   get: function(target, key) {     if (key === "phone") {       // 返回经纪人自己的手机号       return "18611112222";     }     if (key === "price") {       // 明星不报价,经纪人报价       return 120000;     }     return target[key];   },   set: function(target, key, val) {     if (key === "customPrice") {       if (val < 100000) {         // 最低 10w         throw new Error("价格太低");       } else {         target[key] = val;         return true;       }     }   } }); // 主办方 console.log(); console.log(agent.age); console.log(agent.phone); console.log(agent.price); // 想自己提供报价(砍价,或者高价争抢) agent.customPrice = 150000; // agent.customPrice = 90000  // 报错:价格太低 console.log("customPrice", agent.customPrice);

设计原则验证

代理模式 VS 适配器模式

  • 适配器模式:提供一个不同的接口(如不同版本的插头)
  • 代理模式:提供一模一样的接口

代理模式 VS 装饰器模式

  • 装饰器模式:拓展功能,原有功能不变且可直接使用
  • 代理模式:显示原有功能,但经过限制或阉割之后的
    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/24845.html

    分享给朋友:

    “JavaScript-代理模式” 的相关文章

    深入解析APT攻击及其主要案例分析

    在网络安全的领域,APT攻击近年来引起了广泛关注。这种高级持续性威胁(APT)通常是由高度专业化的攻击者发起,针对特定目标进行长期、隐蔽的攻击。APT攻击的目标通常是国家级别的机构、企业、科研单位等,它们的攻击方式不仅难以检测,而且往往具有明显的目的性。 回顾APT攻击的历史,我们可以发现其起源与发...

    Linode Speed Test:优化服务器性能的必备工具与方法

    在互联网时代,速度是衡量服务器性能的重要标准之一。Linode Speed Test 是一种专门用来评估Linode服务器速度和延迟的方法。对于任何希望评估其在线服务效率的用户来说,这项测试提供了关键的数据支持。你可以很方便地通过Linode的官网或者第三方工具来完成这一流程。 Linode成立于2...

    RackNerd VPS:超高性价比与稳定服务的完美选择

    引言 在如今的网络环境中,选择一家合适的VPS服务商无疑是一个关键决策。很多人可能对market上的多个选项感到无从选择。RackNerd作为一家美国成立的VPS主机商,凭借其超高性价比迅速进入了大众视野。特别是在一年一度的黑五促销活动中,RackNerd常常引发热潮,其 $10/年的价格实在让人不...

    VPS商家全攻略:选择适合你的虚拟专用服务器

    VPS商家概述 在数字化时代,VPS(虚拟专用服务器)服务逐渐成为企业和个人用户的重要选择。VPS不仅为用户提供了灵活性,而且在性能、控制权和安全性上都优于传统的共享主机。这使它成为许多需要独立环境来运行网站或应用程序的用户的理想解决方案。 选择VPS的用户通常追求更高的稳定性和可靠性。相比于共享主...

    QQ邮箱服务器完全指南:配置、安全性与优化技巧

    QQ邮箱服务器概述 QQ邮箱是由腾讯公司推出的一款广受欢迎的电子邮件服务。它的优势不仅在于强大的存储容量,还有丰富的功能,适合个人和企业用户使用。很多人都习惯使用QQ邮箱来发送、接收邮件,因此有必要了解其背后的邮件服务器。 在我使用QQ邮箱的过程中,发现它使用的是腾讯自家搭建的邮件服务器。这些服务器...

    全面解析UDP攻击:类型、影响及有效防御策略

    在当今网络环境中,UDP攻击是一个话题无法忽视的安全隐患。它是一种常见的网络攻击形式,通常会给目标服务器带来严重的资源消耗。为了更好地理解这一现象,我们不妨简单回顾一下UDP协议的特性,以及攻击者是如何利用这一协议实施攻击的。 UDP,即用户数据报协议(User Datagram Protocol)...