nicht dass ich wirklich was dagegen hätte, aber um mal etwas genauer reinzugehen:
welche Information soll denn durch die getter + setter versteckt werden? dass die Daten da sind? wohl kaum, Ziel nicht erreicht,
interner Berechnungscode? der ist immer versteckt, kann sowieso nie von außen gesehen werden,
wenn die getter gar keine Klassenattribute sondern neu berechnete Werte zurückgeben, dann ist da durchaus etwas versteckt und gleichzeitig kein Kapsel-Fehler wie du ihn beschreibst
eine Art von Informationhiding ist die Struktur, wie die Nutzdaten intern abgelegt werden, z.B. in ArrayList im Vergleich zu LinkedList,
da geht es Hand in Hand, dass die Implementierung unbekannt ist und die Linked-Entrys bzw. das interne Array nicht nach außen gegeben wird,
gäbe es die getter + setter dazu, wäre die Kapselung nach deiner Definition verletzt, aber auch das Informationhiding weg, denn die Information, dass ein Array oder eine Verlinkung benutzt wird, ist doch offen?
Informationhiding besagt, dass der interne Aufbau einer Klasse oder von mir aus auch nur einer Teilfunktion davon, einer Methode, komplett ausgetauscht werden kann ohne dass das restliche Programm etwas davon mitbekommt,
wie kann sowas umgesetzt werden wenn von außen der interne Zustand veränderbar ist?
dieser Kapsel-Fehler schließt meiner Meinung nach auch Informationhiding aus, zumindest ein gewisser Teil davon in der Klasse,
gewisse Dinge sind dann eben nicht unabhängig und beliebig austauschbar,
während andere Methoden von den geänderten Zustand wiederum unabhängig sind und dennoch geändert werden können
Berechnungscode ist immer versteckt, dafür braucht es kein Pattern/Prinzip,
nur Datenstrukturen, verwendete Subkomponenten, Konfigurationsparameter usw. sind Informationhiding und das klappt doch nur (beliebig austauschbar) wenn sie auch gleichzeitig gekapselt sind?
so, paar Gedanken halb ausgedacht halb aus Links bestätigt, ist was falsches dran?