24.11.2013 Aufrufe

5 Objektorientiertes Design

5 Objektorientiertes Design

5 Objektorientiertes Design

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

86 3 <strong>Objektorientiertes</strong> <strong>Design</strong><br />

public String getName()<br />

{<br />

return this.name;<br />

}<br />

}<br />

// weitere Getter und Setter ...<br />

Das von der Klasse angebotene API erfordert zur Herstellung eines gültigen Objektzustands<br />

nach der Objektkonstruktion, dass alle Attribute durch Aufruf von set()-<br />

Methoden sukzessive initialisiert werden. Betrachten wir dies anhand des Einlesens aus<br />

einer Datei in der folgenden Methode createSimpleImageFromFile():<br />

public static SimpleImage createSimpleImageFromFile() throws IOException<br />

{<br />

final SimpleImage simpleImage = new SimpleImage();<br />

// ACHTUNG: Nur zur Demonstration Beobachter zu früh registrieren<br />

registerObserver(simpleImage);<br />

final String imageName = readNameFromFile();<br />

simpleImage.setName(imageName);<br />

// Name setzen<br />

try<br />

{<br />

final int imageWidth = readWidthFromFile();<br />

simpleImage.setWidth(imageWidth); // Breite setzen<br />

final int imageHeight = readHeightFromFile();<br />

simpleImage.setHeight(imageHeight); // Höhe setzen<br />

}<br />

catch(final NumberFormatException e)<br />

{<br />

// ACHTUNG: Keine Fehlerbehandlung zur Demonstration<br />

}<br />

final String imageData = readImageDataFromFile();<br />

simpleImage.setImageData(imageDate); // Daten setzen<br />

}<br />

return simpleImage;<br />

Ähnliche Programmausschnitte trifft man in der Praxis immer wieder an. Was daran<br />

problematisch ist, wollen wir nun analysieren:<br />

1. Es werden ungültige Objektzustände sichtbar. Im Beispiel wird dies dadurch ausgelöst,<br />

dass ein Beobachter zu früh – vor Abschluss der Objektkonstruktion und<br />

der Initialisierung – angemeldet wird. Im Allgemeinen werden ungültige Objektzustände<br />

sichtbar, wenn man eine noch nicht vollständig initialisierte Referenz an<br />

andere Komponenten übergibt.<br />

2. Treten Fehler beim Einlesen aus der Datei oder beim Verarbeiten der eingelesenen<br />

Daten auf, so verbleibt das Objekt in einem teilinitialisierten Objektzustand, der<br />

höchstwahrscheinlich keinem gültigen Objektzustand entspricht.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!