Einkapselung vs. Abstraktion
Encapsulation und Abstraction sind zwei verschiedene, aber verwandte Konzepte, die in OOP-Sprachen (Object Oriented Programming) zu finden sind. Encapsulation ist das Konzept der Kombination von Daten und Verhalten als eine einzige Einheit. Auf der anderen Seite ist Abstraktion der Prozess der Darstellung des Verhaltens einer Entität im Gegensatz zu ihrer Implementierung.
Was ist Kapselung??
Einkapselung ist der Prozess des Umschließens von Daten und Operationen, die für sie in einer einzigen Entität verarbeitet werden. Dies bedeutet im Wesentlichen, dass für den Zugriff auf Daten bestimmte vordefinierte Methoden verwendet werden sollten. Mit anderen Worten, auf gekapselte Daten kann nicht direkt zugegriffen werden. Dadurch wird sichergestellt, dass die Datenintegrität erhalten bleibt, da der Benutzer nicht direkt auf die Daten zugreifen und diese ändern kann. Die Benutzer erhalten oder setzen die Datenwerte nur über die Methoden, die den Benutzern öffentlich zur Verfügung stehen. Diese Methoden bieten normalerweise eine Datenüberprüfung, so dass nur die Daten im entsprechenden Format in die Felder eingefügt werden dürfen. Daher sind die Vorteile der Encapsulation dreifach. Durch die Kapselung kann der Programmierer Felder einer Klasse nur lesen oder schreiben. Zweitens kann eine Klasse die vollständige Kontrolle darüber haben, was in ihren Feldern gespeichert ist. Schließlich müssen sich die Benutzer einer Klasse keine Gedanken darüber machen, wie ihre Daten gespeichert werden. In Java kann der Programmierer alle Instanzvariablen als privat deklarieren und (öffentliche) Get- und Set-Methoden zum Zugriff und zum Ändern der privaten Felder bereitstellen.
Was ist Abstraktion??
Bei der Abstraktion werden die Präsentationsdetails von den Implementierungsdetails getrennt. Dies geschieht, um den Entwickler von den komplexeren Implementierungsdetails zu entlasten. Stattdessen kann sich der Programmierer auf die Präsentation oder die Verhaltensdetails der Entität konzentrieren. Vereinfacht ausgedrückt konzentriert sich die Abstraktion darauf, wie eine bestimmte Entität verwendet werden kann und nicht wie sie implementiert wird. Die Abstraktion verbirgt im Wesentlichen die Implementierungsdetails, so dass der Programmierer selbst dann keine Bedenken haben muss, wie er sein Programm beeinflussen würde, selbst wenn sich die Implementierungsmethode im Laufe der Zeit ändert. Ein System kann in mehreren Ebenen oder Ebenen abstrahiert werden. Zum Beispiel zeigen Abstraktionsebenen auf niedriger Ebene Hardwaredetails, während bei Abstraktion auf hoher Ebene nur die Geschäftslogik der Entität sichtbar wird. Der Begriff Abstraktion kann verwendet werden, um sich sowohl auf eine Entität als auch auf einen Prozess zu beziehen, und dies führt zu einiger Verwirrung. Als Prozess bedeutet Abstraktion das Extrahieren wesentlicher Details, während die unwesentlichen Details eines Elements oder einer Gruppe von Elementen ignoriert werden, während Abstraktion als Entität ein Modell oder eine Ansicht einer Entität mit nur den wesentlichen Details bedeutet. In Java kann der Programmierer das Schlüsselwort abstract verwenden, um eine Klasse als abstrakte Entität zu deklarieren, die die wesentlichen definierenden Merkmale einer Entität in der realen Welt darstellt.
Was ist der Unterschied zwischen Einkapselung und Abstraktion??
Obwohl Einkapselung und Abstraktion sehr verwandte Konzepte sind, die in objektorientierten Programmiersprachen zu finden sind, weisen sie wesentliche Unterschiede auf. Abstraktion ist eine Technik, mit der wir erkennen können, was sichtbar sein sollte und was verborgen werden sollte. Einkapselung ist die Technik, um die Informationen so zu packen, dass sichtbar wird, was sichtbar sein soll, und versteckt, was verborgen werden sollte. Mit anderen Worten, Encapsulation kann als ein Schritt über die Abstraktion hinaus identifiziert werden. Während die Abstraktion ein reales Objekt auf seine wesentlichen definierenden Merkmale reduziert, erweitert die Kapselung diese Idee, indem diese Funktionalität dieser Entität modelliert und verknüpft wird.