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函数的源码,也没有改变内部调用方式。    
  • 相关阅读:
    Java回顾之Spring基础
    Java回顾之ORM框架
    Java回顾之JDBC
    Java回顾之一些基础概念
    Java回顾之反射
    Java回顾之序列化
    platform_device与platform_driver
    DB9 公头母头引脚定义及连接
    浅谈UML的概念和模型之UML九种图
    为Windows 7的winsxs目录瘦身,谨慎。
  • 原文地址:https://www.cnblogs.com/spacetime-party/p/13047030.html
Copyright © 2011-2022 走看看