A.面向对象编程
B.面向切面编程
C.面向过程编程
D.面向服务编程
B 1. 作用: 利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。可以在不修改源码的情况下对程序进行增强。
场景: 权限校验 日志记录 性能监控 事务控制
实现原理: JDK 的动态代理:针对实现了接口的类产生代理。 Cglib的动态代理:针对没有实现接口的类产生代理,应用的是底层的字节码增强技术,生成当前类的子类对象1.
最详细的关于互联网的
AOP
1. (面向切面编程Aspect Oriented Programming)
2. (面向行为编程Action Oriented Programming)
3. (支付宝开放平台Alipay Open Platform)
面向切面编程:
计算机科学中的一种程序设计思想,旨在将横切关注点与业务主体进行进一步分离,以提高程序代码的模块化程度。通过在现有代码基础上增加额外的通知(Advice)机制,能够对被声明为“切点(Pointcut)”的代码块进行统一管理与装饰,如“对所有方法名以‘set*’开头的方法添加后台日志”。该思想使得开发人员能够将与代码核心业务逻辑关系不那么密切的功能(如日志功能)添加至程序中,同时又不降低业务代码的可读性。面向切面的程序设计思想也是面向切面软件开发的基础。
面向切面的程序设计将代码逻辑切分为不同的模块(即关注点(Concern),一段特定的逻辑功能)。几乎所有的编程思想都涉及代码功能的分类,将各个关注点封装成独立的抽象模块(如函数、过程、模块、类以及方法等),后者又可供进一步实现、封装和重写。部分关注点“横切”程序代码中的数个模块,即在多个模块中都有出现,它们即被称作“横切关注点(Cross-cutting concerns, Horizontal concerns)”。
日志功能即是横切关注点的一个典型案例,因为日志功能往往横跨系统中的每个业务模块,即“横切”所有有日志需求的类及方法体。而对于一个信用卡应用程序来说,存款、取款、帐单管理是它的核心关注点,日志和持久化将成为横切整个对象结构的横切关注点。
切面的概念源于对面向对象的程序设计的改进,但并不只限于此,它还可以用来改进传统的函数。与切面相关的编程概念还包括元对象协议、主题(Subject)、混入(Mixin)和委托(Delegate)。
(【简单讲】:指将动态的代码切入到类的制定方法,指定位置的编程思想,而利用AOP可以对业务解耦,提高重用性,提升开发效率!)
——————
面向行为编程:一种程序设计范型,同时也是一种程序架构模式。面向行为编程是函数式编程的衍生范型,将电脑运算平展为一系列的变化,并且避免使用程序指令以及堆叠的对象。行为描述一个变化前后的对象的特征,并将其解释为其他一组行为。它将行为作为程序的基本单元,以提高软件的可重用性、可扩展性和可维护性。传统的程序设计主张将程序看作一系列相互交互的对象的集合,或者直接就是一系列对电脑下达的指令。AOP则是直接以人们对变化的需求性认知和解释来表达程序,简化了计算机对程序本身的分析和运行时处理,提升了系统的兼容、演进等特性。
——————————
支付宝开放平台:
基于支付宝核心功能的重要开放途径,为开发者、企业、合作伙伴开放网上支付基础服务,推动各行各业定制、创新、进化,并最终促成新商业文明生态圈。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。