Der eigentliche Zweck der Kapselung besteht darin, an einem Ort das Wissen über das Gerät einer bestimmten Entität, die Regeln für die Handhabung und den Betrieb damit zu sammeln. Die Einkapselung erschien viel früher als allgemein angenommen. Module in C-Programmen sind Kapselungen. Assembler-Routinen sind Kapselungen.
Das Gegenteil von Kapselung ist die Verbreitung von Wissen über die Funktionsweise von etwas im gesamten Programm.
Bei der Implementierung von Verhalten wählen wir manchmal aus mehreren gleichwertigen Optionen. In Zukunft kann sich das Gewicht einer der abgelehnten Optionen unter dem Einfluss geänderter Umstände erhöhen. Die zuvor ausgewählte und implementierte Option wird erfolglos bleiben. Eine Änderung der Entscheidung wird viel einfacher, wenn absolut alle Details der Implementierung der ausgewählten Option an einem Ort konzentriert sind.
Beispiel: Arbeiten mit Geldwerten. Es ist kein Geheimnis, dass in vielen E-Commerce-Systemen Geldwerte als Gleitkommazahlen implementiert werden. Ich denke, dass wir uns alle bewusst sind, dass sich durch die einfache Addition von zwei "Ganzzahl" -Zahlen, die als Gleitkommavariablen dargestellt werden, eine "leicht Nicht-Ganzzahl" bilden kann. Daher muss bei einer solchen Implementierung hier und da ein Rundungsfunktionsaufruf eingefügt werden. Dies ist das Verschmieren von Wissen über die Struktur der Entität während des gesamten Programms. Die Kapselung besteht in diesem Fall darin, an einem Ort das Wissen zu sammeln (zu verbergen), dass Geld als Gleitkommawert dargestellt wird und dass es während der unschuldigsten Operationen ständig abgerundet werden muss. Verstecken Sie sich, damit bei Verwendung der Entität „Geld“ die Frage der Rundung nicht einmal auftaucht. Mit der Kapselung wird es kein Problem geben, die Implementierung von "Geld" von einer Gleitkommazahl in eine Festkommazahl zu ersetzen.