AOP vs OOP
AOP (programmazione orientata agli aspetti) e OOP (programmazione orientata agli oggetti) sono due paradigmi di programmazione. Un paradigma di programmazione è uno stile fondamentale di programmazione per computer. I paradigmi di programmazione differiscono nel modo in cui ogni elemento dei programmi è rappresentato e in che modo viene definito ogni passo per risolvere i problemi. Come suggerisce il nome, OOP si concentra sulla rappresentazione dei problemi usando oggetti del mondo reale e il loro comportamento, mentre AOP si occupa di abbattere i programmi per separare i problemi trasversali.
Cos'è AOP?
AOP è un paradigma di programmazione, che si occupa di abbattere un programma in aree coesive di funzionalità (chiamate preoccupazioni) che attraversano più aree, al fine di aumentare la modularità. Il supporto per le astrazioni (come classi, metodi, ecc.) Per raggruppare e incapsulare le preoccupazioni in entità uniche è fornito in molti altri paradigmi di programmazione. Ma le preoccupazioni (come "Logging") sono esempi di preoccupazioni trasversali, perché ogni parte del sistema registrata è influenzata dalla strategia utilizzata per la registrazione. L'obiettivo principale di tutte le implementazioni AOP è quello di avere espressioni trasversali adatte per catturare tutte le preoccupazioni in un'unica posizione.
Cos'è OOP?
In OOP, l'attenzione si concentra sul pensare al problema da risolvere in termini di elementi del mondo reale e sulla rappresentazione del problema in termini di oggetti e del loro comportamento. Le classi descrivono le rappresentazioni astratte di oggetti del mondo reale. Le classi sono come modelli o modelli, che raccolgono oggetti simili o cose che possono essere raggruppate insieme. Le classi hanno proprietà chiamate attributi. Gli attributi sono implementati come variabili globali e di istanza. I metodi nelle classi rappresentano o definiscono il comportamento di queste classi. I metodi e gli attributi delle classi sono chiamati membri della classe. Un'istanza di una classe è chiamata un oggetto. Pertanto, un oggetto è una struttura di dati che assomiglia da vicino ad alcuni oggetti del mondo reale.
Esistono diversi concetti OOP importanti come l'astrazione dei dati, l'incapsulamento, il polimorfismo, la messaggistica, la modularità e l'ereditarietà. In genere, l'incapsulamento si ottiene rendendo privati gli attributi, mentre si creano metodi pubblici che possono essere utilizzati per accedere a tali attributi. L'ereditarietà consente all'utente di estendere le classi (chiamate sottoclassi) da altre classi (chiamate super classi). Il polimorfismo consente al programmatore di sostituire un oggetto di una classe al posto di un oggetto della sua super classe. In genere, i nomi trovati nella definizione del problema diventano direttamente classi nel programma. E allo stesso modo, i verbi diventano metodi. Alcuni dei linguaggi OOP più popolari sono Java e C #.
Qual è la differenza tra AOP e OOP?
La differenza chiave tra OOP e AOP è che l'obiettivo di OOP è quello di suddividere l'attività di programmazione in oggetti, che incapsulano dati e metodi, mentre l'obiettivo di AOP è quello di abbattere il programma in crosscutting preoccupazioni. In effetti, AOP non è un concorrente per OOP, perché è emerso dal paradigma OOP. AOP estende OOP affrontando alcuni dei suoi problemi. AOP introduce modi accurati per implementare preoccupazioni trasversali (che potrebbero essere state disseminate in più punti nell'implementazione OOP corrispondente) in un unico luogo. Pertanto, AOP rende il programma più pulito e più liberamente accoppiato.