代理模式
代理模式,为一个对象找一个替代对象,以便对原对象进行访问。即在访问者与目标对象之间加一层代理,通过代理做授权和控制。最常见的例子是经纪人代理明星业务,假设你作为一个投资者,想联系明星打广告,那么你就需要先经过代理经纪人,经纪人对你的资质进行考察,并通知你明星排期,替明星本人过滤不必要的信息。事件代理、JQuery 的$.proxy、ES6 的 proxy 都是这一模式的实现,下面以 ES6 的 proxy 为例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| const idol = { name: '蔡x抻', phone: 10086, price: 1000000 }
const agent = new Proxy(idol, { get: function(target) { return '经纪人电话:10010' }, set: function(target, key, value) { if(key === 'price' ) { if(value < target.price) throw new Error('报价过低') target.price = value } } })
agent.phone agent.price = 100
|