系统分析,英语
计算机专业时文选读(971)
Aspect-Oriented Programming
Aspect-oriented programming (AOP) is an approach to programming that
allows global properties of a program to determine how it is compiled into an executable program. The conceptualizers of AOP compare aspect
programming to the manufacturing of cloth in which threads are
automatically interwoven. Without AOP, programmers must stitch the threads by hand.
AOP complements object-oriented programming by allowing the developer to dynamically modify the static object-oriented model to create a system that can grow to meet new requirements, allowing an application to adopt new characteristics as it develops.
AOP provides a solution for abstracting cross-cutting code that spans object hierarchies without functional relevance to the code it spans. Instead of embedding cross-cutting code in classes, AOP allows you to abstract the cross-cutting code into a separate module (known as an aspect) and then apply the code dynamically where it is needed. You
achieve dynamic application of the cross-cutting code by defining specific places (known as pointcuts) in your object model where cross-cutting code should be applied. At runtime or compile time, depending on your AOP framework, cross-cutting code is injected at the specified pointcuts. Essentially, AOP allows you to introduce new functionality into objects without the objects’ needing to have any knowledge of that introduction. Aspect-oriented software development (AOSD) is a new approach to software development that addresses limitations inherent in other approaches,
including object-oriented programming. AOSD aims to address crosscutting concerns by providing means for systematic identification, separation, representation and composition. Crosscutting concerns are encapsulated in separate modules, known as aspects, so that localization can be promoted. This results in better support for modularization hence reducing
development, maintenance and evolution costs.
The following terms are often used in AOP:
Aspect An aspect is a subprogram that is associated with a specific property of a program. As that property varies, the effect “ripples”
through the entire program. The aspect subprogram is used as part of a new kind of compiler called an aspect weaver.
Aspect is a construct, resembling classes, for addressing concerns that cut across classes. An aspect can contain methods and fields, extend other classes or aspects, and implement interfaces.
Aspects in AOP package advice and pointcuts into functional units in much the same way that object-oriented programming uses classes to package fields and methods
AspectC++ An aspect-oriented extension to the C++ programming language. AspectJ An aspect-oriented extension to the Java programming language.