第四篇:编码框架,AOP、IOC与DI

什么是AOP?

举例:某项目,要开发100个API接口,每个接口必须做【调用验证】、【入参、出参、异常日志保存】

实际上,每个接口里【调用验证】【入参、出参、异常日志保存】都是一样的代码,每个接口都要重复这么一段代码,累死了。

有没有办法可以把这些重复的工作一次性做完?有,用AOP框架,把【调用验证】、【入参、出参、异常日志保存】的事放到切面去执行。

说白了AOP就是拦截器,可以在你的方法执行前后做自定义操作,比如:

1.在接口调用前做个拦截,在拦截里边做【调用验证、入参日志记录】;

2.在接口调用后做个拦截,在拦截里做【出参日志保存】

3.把接口方法包含在try-catch里,在catch里保存【异常日志】

我常用的AOP框架是Castle,当然.net自带的也有类似于AOP的东西,比如那个Globe.ascx里有【应用启动前、请求前、请求中、请求后、应用结束时】生命周期事件,还有MVC里边的Attribute,也可以根据需要用一用。

 

什么是IOC、DI?

举例:还是某项目,开发100个API接口,使用三层,每个接口里边new一个自己的BLL,每个BLL里都要new一个自己的DAL,总共要new 200下,很累,而且计算机new一个对象是需要一定的时间的,一环扣一环的new,层级多了会导致反应明显变慢。

有没有一种办法,可以把这些重复的代码剔除掉,也就是每个请求接口里边不用操心new BLL的事,每个BLL里边也不用操心new DAL的事,直接拿来就用。

用IOC框架,可以把原本需要接口亲自new的对象,提前被动的注入(DI)进来,使接口可以直接用,更专注于自己的业务代码。

.net 方面,IOC框架挺多,有autofac、Unity等,其中autofac最轻便,我比较喜欢用这个。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值