• ioc和aop理解


    1、IOC 表示控制反转。

      简单点说就是原来的对象是在要使用之前通过在代码里通过new Something()的方式创建出来的;

      IOC则是由spring容器创建同一创建,在程序要使用到该对象的时候,自动注入。(spring默认在web容器启动的时候就创建了单例的对象)

      IOC最大的作用是减少了代码之间的耦合度。

    2、AOP

      AOP(Aspect-Oriented Programming)其实是OOP(Object-Oriented Programing)
    思想的补充和完善。我们知道,OOP引进"抽象"、"封装"、"继承"、"多态"等概念,对万事万物进行抽象和封装,来建立一种对象的层次结构,它强调了
    一种完整事物的自上而下的关系。但是具体细粒度到每个事物内部的情况,OOP就显得无能为力了。比如日志功能。日志代码往往水平地散布在所有对象层次当
    中,却与它所散布到的对象的核心功能毫无关系。对于其他很多类似功能,如事务管理、权限控制等也是如此。这导致了大量代码的重复,而不利于各个模块的重
    用。   而AOP则恰恰相反,它利用一种称为"横切"的技术,能够剖解开封装的对象内部,并将那些影响了多个类并且与具体业务无关的公共行为 封装成一个独立的模块(称
    为切面)。更重要的是,它又能以巧夺天功的妙手将这些剖开的切面复原,不留痕迹的融入核心业务逻辑中。这样,对于日后横切功能的编辑和重用都能够带来极大
    的 方便。    

    AOP技术的具体实现,无非也就是通过动态代理技术或者是在程序编译期间进行静态的"织入"方式。下面是这方面技术的几个基本术 语:    

    1、join point(连接点):是程序执行中的一个精确执行点,例如类中的一个方法。它是一个抽象的概念,在实现AOP时,并不需要去 定义一个join point。    

    2、point cut(切入点):本质上是一个捕获连接点的结构。在AOP中,可以定义一个 point cut,来捕获相关方法的调用。    

    3、advice(通知):是point cut的执行代码,是执行“方面”的具体逻 辑。    

    4、aspect(切面):point cut和advice结合起来就是aspect,它类似于OOP中定义的一个类,但它代表的更多是对 象间横向的关系。    

    5、introduce(引入):为对象引入附加的方法或属性,从而达到修改对象结构的目的。

  • 相关阅读:
    c++标准库容器【转】
    C++命名空间的解释 【转】
    [转载]定义、公理、定理、推论、命题和引理的区别
    待读论文
    矩阵分解 Matrix Factorization (RegularSVD) 实验总结
    Predicting the Next Location: A Recurrent Model with Spatial and Temporal Contexts AAAI2016
    Discovering Urban Functional Zones Using Latent Activity Trajectories TKDE 2015
    numpy
    python 编程 规范
    深度学习
  • 原文地址:https://www.cnblogs.com/SFHa/p/10275253.html
Copyright © 2020-2023  润新知