JS | AOP编程

AOP

AOP(面向切面编程)的主要作用是把一些跟核心业务逻辑模块无关的功能抽离出来,这些跟业务逻辑无关的功能通常包括日志统计、安全控制、异常处理等。把这些功能抽离出来之后, 再通过“动态织入”的方式掺入业务逻辑模块中。

AOP的好处

AOP的好处首先是可以保持业务逻辑模块的纯净和高内聚性,其次是可以很方便地复用日志统计等功能模块。

例子

    // 定义before 和 after
	Function.prototype.before = function(beforeFn){
		let _self = this;
		return function(){
			beforeFn.apply(this, arguments);
			_self.apply(this, arguments)
		}
	}
	Function.prototype.after = function(afterFn){
		let _self = this;
		return function(){
			_self.apply(this, arguments);
			afterFn.apply(this, arguments)
		}
	} 

	// 登陆前
	function LogBeforeLogin(params){
		console.log(`${params.name} gets ready to login in , do some logs before it`)
	}
	// 登陆后
	function LogAfterLogin(params){
		console.log(`${params.name} success to login in , do some logs before it`)
	}

	// 登陆
	function Login(user){
		if(user.name === 'jensonliu' && user.password === '123'){
			console.log('登录成功')
		}
	}
    
    // 一般来说不会同时用before和after来做切面,这是只是展示一下
	let login = Login.before(LogBeforeLogin).after(LogAfterLogin)

	login({
		name:'jensonliu',
		password:'123'
	})
	
	print:
		 jensonliu gets ready to login in , do some logs before it
		 登录成功
	     jensonliu success to login in , do some logs before it

ES7 中的AOP

es7中提供了装饰器模块,也用到了AOP的思想:https://blog.csdn.net/qq_38765789/article/details/102406906

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值