- 9
- 0
- 约6.24千字
- 约 12页
- 2018-08-11 发布于福建
- 举报
AOP动态横切技术在商业银行支付系统中应用
AOP动态横切技术在商业银行支付系统中应用
摘要:在传统的编程方法中对非核心业务的处理往往产生了大量的冗余代码,该文利用AOP的动态横切技术解决这一问题。将那些影响了多个核心业务的公共行为封装到一个可重用模块,并将其名为“Aspect”,实现代码向模块化方向发展,进而降低耦合,达到软件开发维护简易化。
关键词:AOP;动态横切;权限管理
中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)14-3813-02
AOP Dynamic Transversely Technology Apply to Commercial Banks Payment System
LI Jian-min
(Guangdong Police Vocational College, Guagzhou 510520, China)
Abstract: In traditional programme method,there are a mass of redundancy code of dealing with no-core operation. Useing AOPs dynamic transversely technology resolve this problem in this paper. Those commonality actions of affecting multi-core operation encapsulate in module, this module is using by using, named Aspece.The code is developing for modularize direction, therefore reducing coupling, reaching maintenance facilitation in software exploitation.
Key words: AOP; dynamic transversely; purview manage
1 AOP简介
AOP(Aspect-Oriented Programming,面向方面编程),这种技术可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则解决不了这个难题。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能。日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。对于其他类型的代码,如安全性、异常处理和透明的持续性也是如此。这种散布在各处的无关的代码被称为横切(cross-cutting)代码,在OOP设计中,这种导致了大量代码的重复,而不利于各个模块的重用。
AOP技术作为一种完善,利用一种“横切”的技术,剖开封装的对象内部,将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为“Aspect”,即方面。所谓“方面”,简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。AOP代表的是一个横向的关系,如果说“对象”是一个空心的圆柱体,其中封装的是对象的属性和行为;那么面向方面编程的方法,就仿佛一把利刃,将这些空心圆柱体剖开,以获得其内部的消息。而剖开的切面,也就是所谓的“方面”了。然后它又巧妙地将这些剖开的切面恢复原状。AOP的这种特性提高了开发效率,使变化造成的影响局部化,代码向模块化方向发展,进而降低耦合,达到软件开发维护简易化,软件迭代简化的目标。
可以这样说一个关注点就是一个为了满足系统整体目标而必须被处理的特定需求,软件系统可被看成一组关注点的实现,关注点被分为两种类型:核心关注点和横切关注点。核心关注点用来捕捉模块的中心功能,而横切关注点用来捕捉横跨多个模块的系统级外围需求。常见的横切关注点有:用户认证、记录日志、资源池、系统管理、安全保密等。利用典型的OOP方法来实现系统造成核心关注点和横切关注点之间的耦合很不理想,如果要增加新的横切特性,或者修改现有的横切功能,都需要对相关的所有核心模块进行修改。因此引人了AOP是专门处理横切关注点的,它提供了一种新的能够横切其他模块的模块化单位aspect(方面),实现分隔横切关注点的目的在AOP方法中,横切关注点在aspect中实现而不是把这些横切关注点融合到核心模块中去。AOP还提供了一个类似于编译器的实体asp
原创力文档

文档评论(0)