AOP vs OOP
AOP (Aspektorientierte Programmierung) und OOP (Objektorientierte Programmierung) sind zwei Programmierparadigmen. Ein Programmierparadigma ist ein grundlegender Stil der Computerprogrammierung. Programmierparadigmen unterscheiden sich darin, wie jedes Element der Programme dargestellt wird und wie jeder Schritt zur Problemlösung definiert wird. Wie der Name vermuten lässt, konzentriert sich OOP auf die Darstellung von Problemen mit realen Objekten und deren Verhalten, während sich AOP mit dem Zerlegen der Programme befasst, um Crosscutting-Anliegen zu trennen.
Was ist AOP??
AOP ist ein Programmierparadigma, das sich mit der Aufgliederung eines Programms in zusammenhängende Funktionsbereiche (so genannte Anliegen) befasst, die mehrere Bereiche umfassen, um die Modularität zu erhöhen. Unterstützung für Abstraktionen (z. B. Klassen, Methoden usw.) zum Gruppieren und Einschließen von Bedenken in eindeutige Entitäten wird in vielen anderen Programmierparadigmen bereitgestellt. Bedenken (wie z. B. „Protokollierung“) sind jedoch Beispiele für Crosscutting-Bedenken, da jeder protokollierte Teil des Systems von der für die Protokollierung verwendeten Strategie betroffen ist. Der Hauptfokus aller AOP-Implementierungen besteht darin, über geeignete Crosscutting-Ausdrücke zu verfügen, um alle Probleme an einem einzigen Ort zu erfassen.
Was ist OOP??
Bei OOP liegt der Fokus auf dem Nachdenken über das zu lösende Problem in Bezug auf Elemente der realen Welt und die Darstellung des Problems in Bezug auf Objekte und deren Verhalten. Klassen zeigen die abstrakten Darstellungen von Objekten der realen Welt. Klassen sind wie Blaupausen oder Vorlagen, die ähnliche Elemente oder Dinge zusammenfassen, die gruppiert werden können. Klassen haben Eigenschaften, die als Attribute bezeichnet werden. Attribute werden als globale Variablen und Instanzvariablen implementiert. Methoden in den Klassen repräsentieren oder definieren das Verhalten dieser Klassen. Methoden und Attribute von Klassen werden als Mitglieder der Klasse bezeichnet. Eine Instanz einer Klasse wird als Objekt bezeichnet. Daher ist ein Objekt eine Datenstruktur, die einem realen Objekt sehr ähnlich ist.
Es gibt mehrere wichtige OOP-Konzepte wie Datenabstraktion, Einkapselung, Polymorphie, Messaging, Modularität und Vererbung. In der Regel wird die Kapselung dadurch erreicht, dass die Attribute als privat deklariert werden, während öffentliche Methoden erstellt werden, mit denen auf diese Attribute zugegriffen werden kann. Vererbung ermöglicht dem Benutzer das Erweitern von Klassen (als Unterklassen bezeichnet) von anderen Klassen (als Superklassen bezeichnet). Der Polymorphismus ermöglicht es dem Programmierer, ein Objekt einer Klasse anstelle eines Objekts seiner Oberklasse zu ersetzen. Normalerweise werden die in der Problemdefinition gefundenen Nomen direkt zu Klassen im Programm. In ähnlicher Weise werden Verben zu Methoden. Einige der beliebtesten OOP-Sprachen sind Java und C #..
Was ist der Unterschied zwischen AOP und OOP??
Der Hauptunterschied zwischen OOP und AOP besteht darin, dass der Fokus von OOP darin liegt, die Programmieraufgabe in Objekte aufzuschlüsseln, die Daten und Methoden einkapseln, während der Fokus von AOP darin liegt, das Programm in Querabschnitte zu zerlegen. Tatsächlich ist AOP kein Konkurrent für OOP, weil es aus dem OOP-Paradigma hervorgegangen ist. AOP erweitert OOP um einige seiner Probleme. AOP bietet übersichtliche Möglichkeiten, Crosscutting-Bedenken (die in der entsprechenden OOP-Implementierung möglicherweise an mehreren Stellen verteilt waren) an einer einzigen Stelle zu implementieren. Daher macht AOP das Programm sauberer und lockerer gekoppelt.