AOP是什么
介绍
aspect oriented Programing
层面 面向 编程
简单来说就是面向切面编程
常用在程序中时常用到的某些程序步骤、阶段、片段抽离出来,与本身的程序逻辑隔离
例子
- 常用的埋点就属于面向切面编程
- 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('后置条件');
})();
浙公网安备 33010602011771号