Aspect Oriented Programming 面向切面编程,AOP是 OOP的延续
    AOP 作为现有的类的一个包装,

    • 向一个现有的对象 class 添加新的功能,
    • 同时又不改对象原有的结构和功能
    1. Decorator Pattern
      1. 函数是一等公民,使得装饰者模式变得想当精简
    2. 在方法名前面加一个 @xxx 注解来为这个方法装饰一些东西
      1. 扩展现有的一个函数的功能
      2. 在现有的函数功能上再附加上一些别的功能
      3. 将一些非业务功能的、属于控制类型的代码给抽象出来
        1. 例如:打印 log,计算执行时间

    装饰器模式知识点
    ES7装饰器
    core-decorators模块