Object Oriented Programming (OOP)
- Works on System level code, OOP looks at an application as a set of collaborating objects. OOP code scatters system level code like logging, security etc with the business logic code.
- OOP works on elements like classes, objects, interfaces etc.
- Provides benefits such as code reuse, flexibility, improved maintainability, modular architecture, reduced development time etc with the help of polymorphism, inheritance and encapsulation.
Aspect Oriented Programming (AOP)
- Aspect Oriented Programming works at the complex software system as combined implementation of multiple concerns like business logic, data persistence, logging, security, multithread safety, error handling, and so on. Separates business logic code from the system level code. In fact one concern remains unaware of other concerns.
- AOP has join points, point cuts, advice, and aspects.
- AOP implementation coexists with the OOP by choosing OOP as the base language.