AOP AOP is a technology for separating crosscutting concerns into single units called aspects. Encapsulating crosscutting concerns. AOP builds on top of other programming paradigms: object-oriented, procedural or functional. It does not replace them AOP just saves you writing extra code
Define the common functionality and use it without modifying the underlying code to use the new feature. AOP : Modularize into Aspects, thereby creating a cleaner and decoupled code. With Aspects in place objects, AOP takes care of passive cross cutting concerns.
Aspect-Jargons Joinpoint : A joinpoint is a candidate point in the execution of the application where an aspect can be plugged in. Advice : It is the actual implementation of our aspect. Pointcut : A pointcut defines at what joinpoints advice should be applied.
Weaving Weaving is the process of applying aspects to a target object. Aspects are woven into the target object at the specified joinpoints. Compile time Classload time Runtime
AspectJ - Observer Pattern Observer Pattern Which objects are Subjects and which are Observers ? When should the Subject send a notification to its Observers ? What the Observer should do when notified ?