Doppelrolle einer Klasse Flashcards
Klient
° nimmt konkrete Dienstleistung eines anderen Objektes in Anspruch
Dienstleister
° Leistet bei einer Teilaufgabe einen Dienst
Dienstleistungen an der Schnittstelle
° Objekte bieten Dienstleistungen als Methode an ihrer Schnittstelle an
° Dienstleistungen werden von anderen Klienten benutzt
° Klient fordert eine Dienstleistung des Anbieters an
° Der Dienstleister kann selbst Teile seiner Dienstleistung von anderen Dienstleistern einholen
° Objekt kan Dienstleister und Klient sein!
Kapselung
° Schützt den Zugriff auf Programmkonstrukte (z.B. Felder oder Methodenrümpfe) vor äußerem Zugriff
- In Java mit den Schlüsselwörtern public und private
° Klassen sollten eine Black Box sein
° Klassen zeigen nur relevante Informationen nach außen
° Vorteile von Kapselung sind:
- Das Ausblenden von Details vereinfacht die Benutzung
- Details der Implementation können geändert werden, ohne den Klienten zu ändern
Außensicht
° für die Klientensicht
° sind öffentliche Eigenschaften
° Dienstleistungen
° Schnittstelle
° Operationen die an dem Exemlaren aufgerufen werden können?
° Typ der Parameter einer Operation und ihr Ergebnis?
° Aussage über die Benutzung in der Dokumentation ?
Innensicht
° für die Implementierung der Methoden
° private Eigenschaften
° Implementation
° Umsetzung der Operationen in den Methodenrümpfen?
° Exemplarvariablen/Felder die die Klasse definieren?
° private Hilfsmethoden der Klasse?
Trennung von Schnittstelle und Implementierung
° In BlueJ lässt sich entweder die Implementierung einer Klasse oder ihre Schnittstelle anzeigen
° Für die Benutzung reicht die Schnittstellensicht aus
° Die Java API (Application Programming Interface) bietet von allen Bibliotheksklassen als Dokumentation die Schnittstellenansicht
° Durch Trennung ergibt sich: Die gleiche Schnittstelle kann auch verschiedene Weise implementiert werden