Content deleted Content added
Timeshifting (talk | contribs) m Update url and project name for Typo3 Flow |
No edit summary Tags: Mobile edit Mobile web edit |
||
Line 3:
In [[computing]], '''aspect-oriented programming''' ('''AOP''') is a [[programming paradigm]] that aims to increase [[Modularity (programming)|modularity]] by allowing the [[separation of concerns|separation of]] [[cross-cutting concern]]s. It does so by adding additional behavior to existing code (an [[Advice (programming)|advice]]) ''without'' modifying the code itself, instead separately specifying which code is modified via a "[[pointcut]]" specification, such as "log all function calls when the function's name begins with 'set'". This allows behaviors that are not central to the [[business logic]] (such as logging) to be added to a program without cluttering the code, core to the functionality. AOP forms a basis for [[aspect-oriented software development]].
AOP includes programming methods and tools that support the modularization of concerns at the level of the source code, while "aspect-oriented
Fecesdevelopment" refers to a whole engineering discipline. Aspect-oriented programming entails breaking down program logic into distinct parts (so-called ''
[[data logging|Logging]] exemplifies a crosscutting concern because a logging strategy necessarily affects every logged part of the system. Logging thereby ''crosscuts'' all logged classes and methods.
|