博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

前端-面向AOP编程

Posted on 2024-06-01 00:04  xbb834533385  阅读(21)  评论(0)    收藏  举报

AOP是什么

介绍

aspect oriented Programing
层面 面向 编程
简单来说就是面向切面编程
常用在程序中时常用到的某些程序步骤、阶段、片段抽离出来,与本身的程序逻辑隔离

例子

  1. 常用的埋点就属于面向切面编程
  2. Node读取文件、获取数据、处理数据、重写文件
    读取文件获取数据
    处理加工数据
    重写文件

好处

解决程序中耦合文件,抽离和隔离出两个程序片段

代码举例

实现目标

function test() {
  console.log('前置条件');
  console.log('代码主体逻辑');
  console.log('后置条件');
}
test();
// 前置条件
// 代码主体逻辑
// 后置条件

AOP编程思路


Function.prototype.before = function (cb) {
  let self = this;
  return function() {
    cb.apply(self, arguments);
    return self.apply(self, arguments);
  }
}
Function.prototype.after = function (cb) {
  let self = this;
  return function() {
    let result = self.apply(self, arguments);
    cb.apply(self, arguments);
    return result;
  }
}
function test() {
  console.log('代码主体逻辑');
  return '这是最后的返回结果' 
}
const result = test.before(() => {
  console.log('前置条件');
}).after(() => {
  console.log('后置条件');
})();