美文网首页
面向切片编程AOP-装饰者模式

面向切片编程AOP-装饰者模式

作者: 小麻烦爱学习 | 来源:发表于2020-07-17 15:38 被阅读0次

AOP: 面向切片编程,在不改变代码原有逻辑的情况下,增加一些额外的功能.
下面例子中核心代码都在fn中,但是想在执行fn前后做一些操作

Function.prototype.before = function(beforeFn) {
    return () => {
        beforeFn();
        this();
    }
}

Function.prototype.after = function(afterFn) {
    return () => {
        this(); // this指向的不是原来的fn,而是before方法返回的匿名函数,包括了注入的beforeFn和原始的fn
        afterFn();
    }
}

function fn(){
    console.log('fn');
}

let newFn = fn.before(() => {
    console.log('before');
}) // 执行到这里,返回结果是before里面返回的匿名函数(不再是原来的fn),匿名函数也是可以调用after方法
.after(() => {
    console.log('after');
});
let rs = newFn();
// 打印结果
//before
//fn
//after


相关文章

  • 面向切片编程AOP-装饰者模式

    AOP: 面向切片编程,在不改变代码原有逻辑的情况下,增加一些额外的功能.下面例子中核心代码都在fn中,但是想在执...

  • 设计模式-装饰模式理解

    动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 装饰者模式、代理、面向切片编程有...

  • 设计模式之装饰者(Decorate)模式

    什么是装饰者模式?   装饰者模式,是面向对象编程领域中,一种动态地往一个类中添加新的行为的设计模式。就功能而言,...

  • 装饰者模式的理解

    引入 在看数据库连接池这一章内容的时候,出现了面向接口编程和装饰者模式的设计模式。利用装饰者设计模式把数据库连接池...

  • 装饰设计模式与面向接口编程的一应用案例

    首先先了解 装饰设计模式和面向接口编程的一般定义。 装饰设计模式 装饰模式指的是在不必改变原类文件和使用继承的情况...

  • spring-AOP基础,jdbctemplate基础

    AOP-面向切面编程 AOP是对OOP的有益补充,面向对象的特点是继承、多态和封装。而封装就要求将功能分散...

  • 面向指针编程(一)

    面向对象编程,面向设计模式编程(亦即设计模式),面向接口编程,面向模板编程(亦即泛型编程),面向函数编程(亦即函数...

  • Python | 面向对象编程的基础知识

    一、编程模式的变迁 Python编程模式的发展/从面向过程编程->函数编程->面向对象编程 1.概述 ● 面向过程...

  • 面向切面编程AOP

    安卓 AOP 实战:面向切片编程 T-MVP

  • spring-aop 应用

    Aop- 面向切面编程-->通俗讲 对业务方法做一些增强(比如日志输出,事务控制,异常的处理等。。) 举个例子:比...

网友评论

      本文标题:面向切片编程AOP-装饰者模式

      本文链接:https://www.haomeiwen.com/subject/bmqghktx.html