美文网首页
Javascript设计模式-代理模式

Javascript设计模式-代理模式

作者: 宣大头 | 来源:发表于2019-10-15 17:32 被阅读0次

特点

1.使用者无法直接访问目标对象

2.使用者和目标对象之间加一层代理,通过代理来授权和控制

例如:访问github.com我们通常需要添加代理

class GitHubCon {

  constructor(originIp) {

    this.originIp = originIp

  }

  connect() {

    console.log('正在通过'+ this.originIp + '连接github,网络连接不上')

  }

}

class ProxyCon {

  constructor(originIp) {

    this.githubCon = new GitHubCon(originIp)

  }

  connect() {

    console.log('经过网络代理过程逻辑后...')

    this.githubCon.connect()

    console.log('经过网络连接网络可访问')

  }

}

let proxyCon = new ProxyCon('192.168.2.100')

proxyCon.connect()

//明细

let star = {

  name: 'xuanleilei',

  age: '27',

  phone: '17372972684',

  customPrice: 9999999

}

//经纪人

let agent = new Proxy(star, {

  get: function(target, property) {

    if(property == 'phone') {

      //返回经纪人电话

      return '18356086553'

    } 

    if(property == 'price') {

      return 8888888

    }

    return target[property]

  },

  set: function(target, property, value) {

    if(property === 'customPrice') {

      if(value < 1000000) {

        throw new Error('价格太低')

      } else {

        target[property] = value

        return true

      }

    }

  }

})

//test

console.log(agent.name)

console.log(agent.price)

console.log(agent.phone)

agent.customPrice =  999

设计原则验证

1.代理类和目标类分离

2.符合开放封闭原则

相关文章

  • JavaScript设计模式四(代理模式)

    JavaScript设计模式四(代理模式) 代理模式的定义: 代理模式是为一个对象提供一个代用品或者占位符,以便对...

  • Javascript设计模式-代理模式

    特点 1.使用者无法直接访问目标对象 2.使用者和目标对象之间加一层代理,通过代理来授权和控制 例如:访问gith...

  • JavaScript设计模式——代理模式

    代理模式 代理的概念 由于一个对象不能直接引用另一个对象,所以需要通过代理对象在这两个对象之间起到中介的作用 以上...

  • JavaScript设计模式——代理模式

    代理模式属于设计模式中结构型的设计模式; 定义:顾名思义就是为一个对象提供一个代用品或占位符,以便控制对它的访问!...

  • JavaScript设计模式——代理模式

    代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。 代理模式是一种非常有意义的模式,在生活中可以找到...

  • JavaScript设计模式--代理模式

    一、定义 代理模式:为一个对象提供一个代用品或占位符,以便控制对它的访问。代理分为:保护代理和虚拟代理保护代理:用...

  • 设计模式系列笔记-代理模式

    写在前面:本系列文章内容为《JavaScript设计模式与开发实践》一书学习笔记,感谢作者曾探 代理模式 代理模式...

  • Javascript单例模式概念与实例

    前言 和其他编程语言一样,Javascript同样拥有着很多种设计模式,比如单例模式、代理模式、观察者模式等,熟练...

  • [记录]我的设计模式学习路径

    书单 《JavaScript 设计模式与开发实践》《设计模式之美》《掘金小册-JavaScript 设计模式核⼼原...

  • javascript设计模式( 三)代理模式

    代理模式,顾名思义,就是A要对C做一件事情,让B帮忙做(怎么听起来怪怪的)。 下面写几个常见的使用代理模式的例子 ...

网友评论

      本文标题:Javascript设计模式-代理模式

      本文链接:https://www.haomeiwen.com/subject/iyrltqtx.html