Objec t Orie nte d Programm i ng (O OP)
A sp ec t Orie nte d Programm i ng (A OP)
OOP defines an application a s a set of co lla borating objects. OOP code scatters sy ste m level code like security, logging etc w i th the business logic code.
AOP defines at t he complex softw a re s y stem a s combined implementation of multiple concerns like data persistence, busine ss logic, logging, securit y , multithread s afet y , e rro r handling, and so on. Separ ates business rules code from t he sy stem level program . In fact one concern remains una w are o f other rule s.
OOP nomenclatu re has o bjects, classes, interfaces etc.
AOP nomenclatu re has advice, point cuts, join points, and aspects.
Gives benefits such as code reuse, flex ibility , im proved maintainability , modular architect ure, red uced development time etc w i th th e hel p of e ncapsulation, inheritance and pol y mo rphism.
AOP implementa tion exists w i th the OOP b y cho osing OOP as the base language. E.g : Aspect uses Java as the base languag e.
AOP give s be nefits p rovided by OOP plus som e additional benefits.