
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
面向切面编程是程序员在学习软件开发技术的时候会接触和应用到的一个编程方式,下面我们就通过案例分析来了解一下,面向切面编程的优点与应用场景。
面向切面编程,通过预编译方式和运行期间动态代理实现程序功能统一维护的一种技术。AOP是OOP(面向对象程序设计)的延续,是软件开发中的一个热点,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
总结优点
对业务逻辑的各个部分进行隔离,业务之间耦合度降低;
提高程序的可重用性,同时程序更容易维护;
提高开发效率,不用花大量的时间在业务中增加代码,还能降低风险;
其实AOP的本质就是动态代理,何为动态代理呢?
动态代理就是在程序运行时,创建目标对象的代理对象,并对目标对象中的方法进行功能性增强的一种技术。通俗一点来说就是在运行期间对方法的拦截,在方法执行前后进行额外的业务处理,从而在不嵌入原有代码逻辑情况下就能增强被拦截方法的业务能力。
应用场景
AOP思想是很优秀,但总不能处处都得用吧,需根据业务来评估是否需要;常用应用场景大概有以下几个:
安全控制:通常在Web开发的时候,会使用过滤器或拦截器进行权限验证,这也是AOP思想的落地;对于客户端程序,通过上述演示的几种方式可以轻松实现权限的统一管理和验证;
事务处理:相信小伙伴都写过数据库事务代码吧,常规做法就是在业务方法中直接开启事务,执行完成,提交或回滚即可,AOP思想也能很好处理这种情况;
异常处理:统一的异常处理是好的选择,除非是特殊的业务;通常Web有异常过滤器,客户端程序可以用上述几种方式;
日志记录:目前来说日志记录应该是作为系统功能的一部分,AOP统一记录是不错的选择;
性能统计:以AOP的思想对方法进行前后监控,从而可以分析其执行性能;
缓存处理:缓存处理,如上次说到MemoryCache,加上AOP拦截应用,系统效率提升不错哦
业务辅变主不变:主业务变,但会不定时增加辅助需求的场景,比如增加用户,后续可能在用户新增成功之后会增加邮件通知、推送新用户信息等功能。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。