
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
无论是面向对象编程还是面向切面编程都是程序员在开发软件的时候会经常用到的两种编程开发方法,下面我们就通过案例分析来了解一下,面向切面编程开发优势分析。
AOP语言剖析
就像其他编程范型的实现一样,AOP的实现由两部分组成:语言规范和实现。语言规范描述了语言的基础单元和语法;语言实现则按照语言规范来验证代码的正确性,并把代码转成目标机器可执行的形式。这一节,我来解释一下AOP组成部分。
AOP语言规范
从抽象的角度看来一种AOP语言要说明下面两个方面:
关注点的实现:把每个需求映射为代码,然后,编译器把它翻译成可执行代码。由于关注点的实现以指定过程的形式出现,你可以使用传统语言如C、C++、JAVA等。
织入规则规范:怎样把独立实现的关注点组合起来形成终系统呢?为了这个目的需要建立一种语言来指定组合不同的实现单元,以形成终系统的规则。这种指定织入规则的语言可以是实现语言的扩展,也可以是一种完全不同的语言。
AOP语言的实现
AOP的编译器执行两步操作:
l组装关注点
2组装结果转成可执行代码。
AOP实现可以用多种方式实现织入,包括源码到源码的转换、它预处理每个方面的源码,产生织入过的源码,然后把织入过的源码交给基础语言的编译器,产生终可执行代码。比如使用这种方式,一个基于Java的AOP实现可以先把不同的方面转化成Java源代码,然后让Java编译器把它转化成字节码.也可以直接在字节码级别执行织入;毕竟字节码本身也是一种源码。此外,底层的执行系统—一Java虚拟机—一也可以设计为支持AOP的。
AOP的好处
AOP可帮助我们解决上面提到的代码混乱和代码分散所带来的问题,它还有一些别的好处:
模块化横切关注点:AOP用小的耦合处理每个关注点,使得即使是横切关注点也是模块化的。这样的实现产生的系统,其代码的冗余小。模块化的实现还使得系统容易理解和维护。
系统容易扩展:由于方面模块根本不知道横切关注点,所以很容易通过建立新的方面加入新的功能.另外,当你往系统中加入新的模块时,已有的方面自动横切进来,使系统易于扩展。
设计决定的迟绑定:还记得设计师的两难局面吗?使用AOP设计师可以推迟为将来的需求作决定,因为他可以把这种需求作为独立的方面很容易地实现。
更好的代码重用性:AOP把每个方面实现为独立的模块,模块之间是松散耦合的.举例来说,你可以用另外一个独立的日志写入器方面来替换当前的,用于把日志写入数据库,以满足不同的日志写入要求。松散藕合的实现通常意味着更好的代码重用性,AOP在使系统实现松散出合这一点上比OOP做得更好。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。