• 设计模式7—装饰者模式【结构型】


    参考:http://blog.chinaunix.net/uid-26672038-id-4364155.html

    装饰者模式特点:【看书

        1. 不修改原对象的原本结构来进行功能添加。
        2. 装饰对象和原对象具有相同的接口,可以使客户以与原对象相同的方式使用装饰对象。
        3. 装饰对象中包含原对象的引用,即装饰对象为真正的原对象在此包装的对象。

    装饰函数:这个 还是 比较有用的,比如我们想给 window 绑定 onload 事件,但是 又不确定 这个事件是不是已经被其他人绑定过,为了避免 覆盖 掉之前的 window.onload 函数 的行为,

       我们一般都会先保存好原先的window.onload,把他放入新的 window.onload 里执行:

    window.onload = function(){
      alert(1)    
    }
    
    var _onload = window.onload || function(){};
    
    window.onload = function(){
      _onload();
      alert(1);
    }

    实践案例:在给 浙里办项目【该项目使用jQuery开发】中 修改引入的 JS-SDK 版本【JS_SDK.js发布在CDN上】时,因为 新版 JS-SDK 中 使用了 window.onload, 而 项目中的 js也使用了window.onload。

           结果导致JS_SDK中的 window.onload 被覆盖,失去效用。当时 没有 想到 用 装饰者模式 可以解决这个问题,是通过 jQuery 的 onload 方法去解决的【jQuery的onload是可以多次绑定 事件函数的】。

  • 相关阅读:
    摄影/中秋美食
    摄影/不是花中偏爱菊
    基础知识(3)- Java的基本程序设计结构
    8、分页
    洛谷——P2440 木材加工
    洛谷——P1258 小车问题
    洛谷——P1832 A+B Problem(再升级)
    洛谷——P1802 5倍经验日
    洛谷—— P1803 凌乱的yyy
    网络基础之网络协议
  • 原文地址:https://www.cnblogs.com/wfblog/p/14520939.html
Copyright © 2020-2023  润新知