Unterschied zwischen Kapselung und Abstraktion
Encapsulation und Abstraktion
Encapsulation und Abstraktion sind zwei verschiedene, aber verwandte Konzepte, die in OOP- (Object Oriented Programming) Sprachen gefunden werden. Kapselung ist das Konzept der Kombination von Daten und Verhalten als eine Einheit. Auf der anderen Seite ist Abstraktion der Prozess der Präsentation, wie sich eine Entität im Gegensatz zur Implementierung verhält.
Was ist Verkapselung?
Einkapselung ist der Vorgang des Umhüllens von Daten und Operationen, die auf sie angewendet werden. Dies bedeutet im Wesentlichen, dass zum Zugriff auf Daten bestimmte vordefinierte Methoden verwendet werden sollten. Mit anderen Worten, gekapselte Daten sind nicht direkt zugänglich. Dies stellt sicher, dass die Integrität der Daten erhalten bleibt, weil der Benutzer nicht in der Lage ist, die Daten direkt zuzugreifen und zu verändern, wie er es wünscht. Die Benutzer erhalten oder setzen die Datenwerte nur über die Methoden, die den Benutzern öffentlich zur Verfügung stehen. Diese Methoden stellen normalerweise eine Datenvalidierung zur Verfügung, so dass nur die Daten in dem geeigneten Format in die Felder eingefügt werden dürfen. Die Vorteile von Encapsulation sind daher dreifach. Durch die Encapsulation kann der Programmierer Felder einer Klasse schreibgeschützt schreiben 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 Sorgen darüber machen, wie ihre Daten gespeichert werden. In Java kann der Programmierer alle Instanzvariablen als privat deklarieren und get- und set-Methoden (die öffentlich sind) angeben, um auf die privaten Felder zuzugreifen und sie zu ändern.
Was ist Abstraktion?
Bei der Abstraktion werden die Präsentationsdetails von den Implementierungsdetails getrennt. Dies geschieht, damit der Entwickler von den komplexeren Implementierungsdetails entlastet wird. Stattdessen kann sich der Programmierer auf die Präsentation oder die Verhaltensdetails der Entität konzentrieren. In einfachen Worten konzentriert sich die Abstraktion darauf, wie eine bestimmte Entität verwendet werden kann und nicht, wie sie implementiert wird. Die Abstraktion versteckt die Implementierungsdetails im Wesentlichen, so dass sich der Programmierer selbst dann, wenn sich die Implementierungsmethodik im Laufe der Zeit ändert, nicht darum kümmern muss, wie es sein Programm beeinflussen würde. Ein System kann in mehreren Ebenen oder Ebenen abstrahiert werden. So werden z. B. Low-Level-Abstraktionsebenen Hardware-Details anzeigen, während High-Level-Abstraktion nur die Geschäftslogik der Entität aufdeckt. Der Begriff Abstraktion kann verwendet werden, um sowohl eine Entität als auch einen Prozess zu bezeichnen, und dies führt zu einer gewissen Verwirrung. Als Abstraktion bedeutet das Extrahieren wesentlicher Details unter Ignorieren der unwesentlichen Details eines Objekts oder einer Gruppe von Objekten, während als Entität ein Modell oder eine Ansicht einer Entität mit nur den wesentlichen Details gemeint ist.In Java kann der Programmierer das Schlüsselwort abstract verwenden, um eine Klasse als abstrakte Entität zu deklarieren, die die wesentlichen Definitionsmerkmale einer realen Entität repräsentiert.
Was ist der Unterschied zwischen Encapsulation und Abstraktion?
Auch wenn Encapsulation und Abstraktion hochverwandte Konzepte in objektorientierten Programmiersprachen sind, haben sie entscheidende Unterschiede. Abstraktion ist eine Technik, die uns hilft zu erkennen, was sichtbar sein sollte und was verborgen werden sollte. Kapselung ist die Technik, um die Information so zu verpacken, dass sie sichtbar macht, was sichtbar sein soll und verbirgt, was verborgen werden sollte. Mit anderen Worten, Encapsulation kann als ein Schritt jenseits der Abstraktion identifiziert werden. Während die Abstraktion ein Objekt der realen Welt auf seine wesentlichen definierenden Eigenschaften reduziert, erweitert die Verkapselung diese Idee, indem es diese Funktionalität dieser Entität modelliert und verknüpft.