• 设计模式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是可以多次绑定 事件函数的】。

  • 相关阅读:
    错误设置子网掩码的结果
    子网掩码
    网络笔记
    网络笔记
    命名空间
    命名空间
    多重继承和虚继承
    多重继承和虚继承
    windows抓包程序
    windows抓包程序
  • 原文地址:https://www.cnblogs.com/wfblog/p/14520939.html
Copyright © 2020-2023  润新知