15. AOP
第一次听说AOP是在spring框架中听到的。
在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
看文字晦涩难懂,直接看个例子。
下面的这个是模板方法的实现。
TemplatePatternDemo,主类
Game抽象类
其中,play方法的final很重要,防止了子类覆写此方法,打乱了执行顺序。
Cricket子类
Football子类
现在我要在每个球类的play()方法都要加一个计算玩了多久的功能。如果要实现可以每个paly()方法中再加一个计算时间的功能。这里只有两种球类运动,如果有更多的运动呢这个要每个都加,代码冗余。
我们如果把这个功能提取出来,用动态代理模式,完成这个功能的添加。这样就 减少了代码重复问题。这儿就是用动态代理模式实现了AOP。
康康怎么实现。
因为动态代理需要用接口实现。所以我这里在Game抽象类的上层加入了一个接口
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!