Aop是什么?
我知道他是面向切面编程。
有没有具体点的解释?
Aop用到了什么设计模式请大虾们指教

解决方案 »

  1.   

    个人见解:
    AOP就好比是在一个切入口,在项目运行中,根据我们提供的切入方法切入到系统内来执行我们设计好的一些事件,比较有代表性的就是日志,还有事务。是根据JAVA的反射机制来实现的
      

  2.   

    Spring AOP
    ——面向方面的编程
     AOP(Aspect Oriented Programming)的概念
    首先,需要明确的一点就是,AOP 不是用来替换OOP 的,而是OOP 的一
    个补充,通过提供另外一种思考程序结构的途经来弥补OOP 的不足。在OOP
    中模块化的关键单元是类(classes),而在AOP 中模块化的单元则是切面。切面
    能对关注点进行模块化。回想在以往的代码段中,程序一般都是至上而下的代码
    结构,有些代码并非业务代码,它们仅仅是一个较为常用的逻辑处理块,但是在
    代码中只要需要用到,就得处处编写或这实时调用,如日志、异常、事务处理等。
    而AOP 的出现,使得这些代码不再凌乱,并且还可以使其模块化,变得更易于
    维护和管理。说得简单一点,AOP 就是可以在程序运行的过程当中,动态的在
    程序的指定位置插入一些特殊的代码来完成一些特定的功能。
    更进一步,OOP 中的设计模式,让我们的类处在一个封闭的、静态的环境下,
    虽然提供有接口和抽象类,并伴随有重载和重写的机制在其中,但这种灵活是有
    限的,它不能动态的对程序进行扩展或修改程序内部的行为。而面向切面能够剖
    开对象的内部,动态修改模型的行为,从而可以不断的增长系统以满足新的需求。
    AOP 可以将一种常用的或者特定的行为封装成可重用模块,将其命名为Aspect
    (切面),这些切面与业务逻辑应该是无关的。AOP 提高了代码的可重用性,并且
    还提供了动态修改内部代码的能力。AOP 框架是Spring 的一个重要组成部分。
    但是Spring IoC 容器并不依赖于AOP,这意味着你有权利选择是否使用AOP,
    AOP 做为Spring IoC 容器的一个补充,使它成为一个强大的中间件解决方案。
      

  3.   

    Aop,
    如果把面向对象、面向过程看做一条条道路,aop就是道路上的红绿灯/警察