Aspect-oriented programming
From WhyNotWiki
"Aspects describe how all objects or functions should behave in particular circumstances. For example, aspects can add debugging, logging, or locking control into all objects of particular types." (http://en.wikipedia.org/wiki/Software_engineering)
http://en.wikipedia.org/wiki/Objective-C#Categories
http://en.wikipedia.org/wiki/Aspect-oriented_programming Aspect-oriented programming
- Some code is scattered or tangled, making it harder to understand and maintain. It is scattered when one concern (like logging) is spread over a number of modules (e.g., classes and methods). That means to change logging can require modifying all affected modules. Modules end up tangled with multiple concerns (e.g., account processing, logging, and security). That means changing one module entails understanding all the tangled concerns.
Aspect-oriented programming edit (Category edit)
