What are the differences between OOP and AOP?
OOP(Object Oriented Programming):
1 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.
2 OOP has classes, objects, interfaces etc.
3 Provides benefits such as code reuse, flexibility, improved
maintainability, modular architecture, reduced development time etc with the
help of polymorphism, inheritance and encapsulation.
AOP(Aspect Oriented Programming):
1 AOP looks 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.
2 AOP nomenclature has join points, point cuts, advice, and aspects.
3 AOP implementation coexists with the OOP by choosing OOP as the base
language. For example: AspectJ uses Java as the base language.
4 AOP provides benefits provided by OOP plus some additional benefits
which are discussed in the next question.
Read More →