Encapsulation (objektorientierte Programmierung)

Auf einer Programmiersprache wird encapsulation verwendet, um sich auf einen von zwei zusammenhängenden, aber verschiedenen Begriffen, und manchmal zur Kombination davon zu beziehen:

  • Ein Sprachmechanismus, um Zugang zu einigen von den Bestandteilen des Gegenstands zu beschränken.
  • Eine Sprachkonstruktion, die die Bündelung von Daten mit den Methoden (oder andere Funktionen) erleichtert, darauf Daten funktionierend.

Einige Programmiersprache-Forscher und Akademiker verwenden die erste Bedeutung allein oder in der Kombination mit dem zweiten als ein Unterscheidungsmerkmal des orientierten Gegenstands programmierend, während andere Programmiersprachen, die lexikalische Verschlüsse zur Verfügung stellen, encapsulation als eine Eigenschaft der Sprache ansehen, die orthogonal ist, um Orientierung einzuwenden.

Die zweite Definition wird durch die Tatsache motiviert, die auf vielen OOP von Bestandteilen sich verbergenden Sprachen nicht automatisch ist oder überritten werden kann; so wird Informationsverheimlichung als ein getrennter Begriff von denjenigen definiert, die die zweite Definition bevorzugen.

Als Informationsverheimlichungsmechanismus

Laut dieser Definition bedeutet encapsulation, dass die innere Darstellung eines Gegenstands allgemein vor der Ansicht außerhalb der Definition des Gegenstands verborgen wird. Gewöhnlich können nur die eigenen Methoden des Gegenstands direkt untersuchen oder seine Felder manipulieren. Einige Sprachen wie Plausch und Ruby erlauben nur Zugang über Gegenstand-Methoden, aber die meisten andere (z.B. C ++ oder Java) bieten dem Programmierer einen Grad der Kontrolle darüber an, was, normalerweise über Schlüsselwörter wie verborgen wird und. Es sollte bemerkt werden, dass der ISO C ++ sich Standard auf und als "Zugang specifiers" bezieht, und dass sie keine Information "verbergen". Informationsverheimlichung wird durch die Ausrüstung einer kompilierten Version des Quellcodes vollbracht, der über eine Kopfball-Datei verbunden wird.

Das Verbergen des internals des Gegenstands schützt seine Integrität, indem es Benutzer davon abgehalten wird, die inneren Daten des Bestandteils in einen ungültigen oder inkonsequenten Staat zu setzen. Ein Vorteil von encapsulation ist, dass er Systemkompliziertheit reduzieren kann, und so Robustheit vergrößert, indem er dem Entwickler erlaubt wird, die gegenseitigen Abhängigkeiten zwischen Softwarebestandteilen zu beschränken.

Fast immer gibt es eine Weise, solchen Schutz - gewöhnlich über die Nachdenken-API (Rubin, Java, C#, usw.) zu überreiten, manchmal durch den Mechanismus mögen das Namenzerfleischen (Pythonschlange) oder spezieller Schlüsselwort-Gebrauch wie in C ++.

Allgemeine Definition

Im Allgemeinen ist encapsulation einer der 4 Grundlagen von OOP (objektorientierte Programmierung). Encapsulation soll die Variablen oder etwas innerhalb einer Klasse verbergen, nicht bevollmächtigte Parteien verhindernd, zu verwenden. So greifen die öffentlichen Methoden wie Hauer und Setter darauf zu und die anderen Klassen diese Methoden nach dem Zugreifen nennen.

Dieser Mechanismus ist zur objektorientierten Programmierung nicht einzigartig. Durchführungen von abstrakten Datentypen, z.B Module, bieten eine ähnliche Form von encapsulation an. Diese Ähnlichkeit stammt von der Tatsache, dass sich beide Begriffe auf denselben mathematischen fundament eines existenziellen Typs verlassen.

In der Kombination

Hinsichtlich der Kombination (oder sich davonmachend) Daten ist das in jedem Gegenstand überwiegend, der geschaffen wird. Ein Staat eines Gegenstands wird von seinen Methoden abhängen, die wirklich an oder mit den inneren Daten des Gegenstands arbeiten.

Eine Analogie kann hier mit dem Begriff einer Kapsel gemacht werden, die nicht nur seinen Inhalt einschließt, sondern auch es vor der Außenumgebung schützt.

Links


Neuseeland und Südseeausstellung (1889) / Hee-Seop Choi
Impressum & Datenschutz