Benefits of AOP (Aspect Oriented programming)
OOP can give the system level code like transaction management, logging, security etc to scatter throughout the business logic. AOP helps overcome this cause by centralizing these cross-cutting concerns.
2. AOP addresses each aspect separately in a modular fashion with duplication of code and minimal coupling. This modular approach also gives code reuse by using a business rules concern with a separate logger aspect.
3. It is also simpler to add newer functionalities by adding new aspects and weaving principles and subsequently recreating the final code. This ability to add newer functionality as separate aspects enable application designers to defer or delay some design decisions without the dilemma of over designing the program.
4. Promotes rapid development of evolutionary prototypes using OOP by considering only on the business rule by omitting cross-cutting concerns such as auditing, security, logging etc. Once the prototype is accepted, additional concerns like logging, security, auditing etc can be weaved into the prototype code to send it into a production standard application.
5. Developers can concentrate on one prospect at a time rather than having to think simultaneously about logging, performance, security, business logic, multithread safety etc. Different prospects can be developed by different developers based on their key powers.