AOP vs OOP
AOP (Programación orientada a aspectos) y OOP (Programación orientada a objetos) son dos paradigmas de programación. Un paradigma de programación es un estilo fundamental de la programación informática. Los paradigmas de programación difieren en cómo se representa cada elemento de los programas y cómo se define cada paso para resolver problemas. Como sugiere su nombre, OOP se enfoca en representar problemas usando objetos del mundo real y su comportamiento, mientras que AOP se ocupa de desglosar los programas para separar las preocupaciones transversales..
¿Qué es AOP??
AOP es un paradigma de programación, que trata de desglosar un programa en áreas cohesivas de funcionalidad (llamadas inquietudes) que abarcan múltiples áreas, con el fin de aumentar la modularidad. El soporte para abstracciones (como clases, métodos, etc.) para agrupar y encapsular preocupaciones en entidades únicas se proporciona en muchos otros paradigmas de programación. Pero las preocupaciones (como "Registro") son ejemplos de preocupaciones transversales, porque cada parte registrada del sistema se ve afectada por la estrategia utilizada para el registro. El enfoque principal de todas las implementaciones de AOP es tener expresiones transversales adecuadas para capturar todas las inquietudes en una sola ubicación.
¿Qué es OOP??
En OOP, el enfoque está en pensar el problema que se va a resolver en términos de elementos del mundo real y en representar el problema en términos de los objetos y su comportamiento. Las clases representan las representaciones abstractas de los objetos del mundo real. Las clases son como planos o plantillas, que reúnen elementos similares o cosas que se pueden agrupar. Las clases tienen propiedades llamadas atributos. Los atributos se implementan como variables globales y de instancia. Los métodos en las clases representan o definen el comportamiento de estas clases. Los métodos y atributos de las clases se llaman los miembros de la clase. Una instancia de una clase se llama un objeto. Por lo tanto, un objeto es una estructura de datos que se parece mucho a un objeto del mundo real.
Hay varios conceptos importantes de la POO, como la abstracción de datos, la encapsulación, el polimorfismo, la mensajería, la modularidad y la herencia. Normalmente, la encapsulación se logra al hacer que los atributos sean privados, mientras se crean métodos públicos que se pueden usar para acceder a esos atributos. La herencia le permite al usuario extender las clases (llamadas subclases) de otras clases (llamadas súper clases). El polimorfismo permite al programador sustituir un objeto de una clase en lugar de un objeto de su superclase. Normalmente, los nombres encontrados en la definición del problema se convierten directamente en clases en el programa. Y de manera similar, los verbos se convierten en métodos. Algunos de los lenguajes OOP más populares son Java y C #.
¿Cuál es la diferencia entre AOP y OOP??
La diferencia clave entre OOP y AOP es que el enfoque de OOP es dividir la tarea de programación en objetos, que encapsulan datos y métodos, mientras que el enfoque de AOP es dividir el programa en temas transversales. De hecho, AOP no es un competidor de OOP, porque surgió del paradigma OOP. AOP extiende la POO al abordar algunos de sus problemas. AOP presenta formas sencillas de implementar inquietudes transversales (que podrían haber estado dispersas en varios lugares en la implementación de OOP correspondiente) en un solo lugar. Por lo tanto, AOP hace que el programa sea más limpio y más débilmente acoplado..