AOP


/**
     *  【AOP】
     *      Aspect Oriented Programming,面向切面编程;
     *
     *      通过 预编译方式 或 运行期间动态代理 实现在不修改源代码的情况下 给程序动态统一添加某种特定功能的一种技术;
     *
     *      好处:
     *          将业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分耦合度降低;
     *
     *      AOP与OOP的区别:
     *          OOP(面向对象编程):
     *              针对 业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分;
     *              关注将需求功能划分为不同的并且相对独立,封装良好的类,并让它们有着属于自己的行为,依靠继承和多态等来定义彼此的关系;
     *
     *              缺点:
     *                  将公共行为应用于多个无关对象模型之间;
     *
     *          AOP:
     *              针对 业务处理过程中的切面 进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果;
     *              希望能够将通用需求功能从不相关的类当中分离出来,能够使得很多类共享一个行为,一旦发生变化,不必修改很多类,而只需要修改这个行为即可;
     *
     *      AOP 是一个概念,一个规范,本身并没有设定具体语言的实现,这实际上提供了非常广阔的发展的空间;
     *
     *      AOP的实现:
     *          AspectJ、Spring AOP...
     */