zoukankan      html  css  js  c++  java
  • day14 开放封闭原则与装饰器

    一 开放封闭原则
        1 对扩展是开放的,允许代码的功能扩展
        2 对修改是封闭的,不允许修改源码,并且调用方式也不能改变。
     
    二 装饰器
        相当于在原有的函数的基础上添加了一个功能。比如原有的函数getAverage()是求平均值的功能,给它装饰了一个测试函数运行时间的装饰器后,那么再调用getAverage()时,不仅有原有的功能,还会多出一个测试函数运行时间的功能。多个函数可以共用一个装饰器。
     
    标准装饰器:
    def wrapper(func):
        def inner(*args,**kwargs):    '''执行被装饰函数之前的操作'''
            ret = func(*args,**kwargs)  '''执行被装饰函数之后的操作'''
            return ret
        return inner
     
    func=wrapper(func)    //先执行右边,会直接返回一个inner函数,即将inner函数名称赋值给func。
    func()                //此时执行func函数,实际上是执行inner函数,通过万能参数将参数传递给内部的func函数,同时又将内部的func函数的返回值传递给了inner函数。所以没有改变func函数的源码,也没有改变内部调用方式。    
  • 相关阅读:
    JavaScript解析顺序和变量作用域
    JS-BOM
    原生对象-Array
    JavaScript01
    css3动画
    scc的使用
    CSS3学习总结
    Js数组方法大全
    JavaScript判断变量是否为数组
    浏览器兼容性问题及解决方案
  • 原文地址:https://www.cnblogs.com/spacetime-party/p/13047030.html
Copyright © 2011-2022 走看看