rottenpen / blog

日常记录 blog,内容不限于前端,博文在 issue https://github.com/rottenpen/blog/issues
7 stars 0 forks source link

js 设计模式(持续更新....) #5

Closed rottenpen closed 3 years ago

rottenpen commented 6 years ago

23种模式,慢慢看书,慢慢写。 书籍是JavaScript设计模式与开发实践 在亚马逊买了电子书,资源就不上传了,支持正版。

rottenpen commented 6 years ago

代理模式

代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。

案例1

A要送礼物给B / A让C帮忙把礼物送给B

A.send = function( target ,gift){
    let gift = '花'
    target.receive(gift)
}
B.receive = function(gift){
    console.log("B收到了" + gift)
}
A.send(B) // B 收到了花

C.receive  = function (gift){
    console.log("B收到了" + gift + ",并转送给B")
    B.receive(gift)
}
A.send(C) // C收到了花,并转送给B B收到了礼物

保护代理

C知道B喜欢什么,A送一些不喜欢的礼物就能退回去了。过滤掉不喜欢的礼物,不喜欢的人,这就是保护代理的作用。

A.back = function (gift) {
    console.log('A被退回了' + gift)
}
C.receive  = function (gift){
   if(gift === ‘花’){
     A.back(gift)
   }else {
       console.log("B收到了" + gift + ",并转送给B")
       B.receive(gift)
    }
}