AOP

1、什么是OOP?

面向对象编程,世间万物都可以看做一个对象,主要特点是抽象、封装、继承、多态;

2、OOP的好处?

(1)代码开发模块化,易于维护;

(2)代码复用性强;

(3)增加代码的可靠性以及灵活性;

3、OOP的四大特性?

 抽象:提取现实世界中某事物的关键特性,为该事物构建模型的过程。抽象模型一般包含属性和行为,需求不同模型不同;

 封装:使类具有隔离性,保证类的高内聚、低耦合(内聚:模块内的交互程度,耦合:指的是模块间的交互程度),依赖类的修               饰符(public、protected、default、private)

         

 继承(继承和接口实现):对现有的类的一种复用机制;如果一个类继承了现有的类,则这个类将拥有被继承类的所有非私有特性;

 多态:多态是在集成的基础上实现的,多态的三要素,继承、重写、父类的引用指向子类的对象;多态分为运行时多态和编译时多条;

       如果在编译时能够知道执行的具体的方法,就是编译时多态,否则就是运行时多态;

       ps:重载是编译时多态,重写是运行时多态;

4、什么是AOP?(https://blog.csdn.net/yuexianchang/article/details/77018603

   与OOP的关系:OOP的补充和完善;OOP引入抽象、封装、继承、多态等特性来建立一种对象层次结构,但是当我们需要为其分散的对象引入公共的行为时,OOP则无能为力,例如日志功能,如果仅仅使用OOP的设计,会导致大量大码的重复;

   AOP的原理:利用横切的技术,剖解开封装对象的内部,并将那些影响了多个类的公共的行为封装起来

  ps:AOP是针对于与业务处理的主要流程没多大关系的横切关注点,其经常发生在核心关注点(与主要的业务流程有关的);例如权限认证、日志、事务管理;

5、如何实现AOP?

         (1)使用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有的对象行为的执行;

         (2)采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码;

6、AOP的相关概念?

     切面:存放共有功能的一个普通的java类,在配置中指定为切面;切面用Spring的Advisor或拦截器实现;

     连接点:程序运行过程中能够插入切面的点;

     通知:切面的具体实现;以目标方法为参照点,包括环绕、前置、后置;

     切入点:定义通知应该切入到哪些连接点上;

     引入:添加方法或者字段到被通知的类;

     目标对象:包含连接点的对象;

     AOP代理:AOP框架创建的对象,包含通知,代理可以是JDK动态代理,也可以是CGLIB代理;

     织入:创建一个被通知的对象,在运行时完成织入(织入分为,编译时织入、运行时织入、类加载时织入)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值