享元模式
享元模式(Flyweight Pattern) 也叫 蝇量模式: 运用共享技术有效地支持大量细粒度的对象。主要考虑内存而非效率
常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避免重新创建。
享元模式能够解决重复对象的内存浪费的问题,当系统中有大量相似对象,需要缓冲池时。不需总是创建新对象,可以从缓冲池里拿。这样可以降低系统内存,同时提高效率。
将相同部分抽象出来,符合开放封闭模式
代理模式
使用者无权访问目标,中间加代理,通过代理做授权和控制
场景:
(1)网页事件代理
(2)JQ $.proxy
(3)Proxy
let start={
name:'xhn',
age:20,
tel:1573403471
}
let agent = new Proxy(start,{
get:function(target,key){
if(key ===tel ){
// 经纪人自己的手机号
return '25464464848'
}
if(key ==='price'){
return 12000
}
return target[key]
},
set:function(target,key,val){
if(kry === 'customPrice'){
if(val < 100000){
throw new Error('价格太低')
}else{
target[key] = val;
return true;
}
}
}
})