30.06.2013 Aufrufe

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

236 9. Klassen <strong>in</strong> <strong>C++</strong><br />

anderen Aspekt von dynamic B<strong>in</strong>d<strong>in</strong>g, der beim Design von Klassenhierarchien<br />

sehr wichtig ist: virtuelle Ableitungen. Nehmen wir an, wir wollten<br />

e<strong>in</strong>e Klassenhierarchie, wie <strong>in</strong> Abbildung 9.2 dargestellt, modellieren.<br />

Displayable<br />

TextuallyDisplayable GraphicallyDisplayable<br />

Pr<strong>in</strong>table<br />

GameCard<br />

Abbildung 9.2: E<strong>in</strong>e etwas kniffligere Klassenhierarchie<br />

Die Klassenhierarchie <strong>in</strong> Abbildung 9.2 beruht auf folgendem Design:<br />

• Es gibt e<strong>in</strong>e Klasse Displayable, die die Basis für alle anzeigbaren Objekte<br />

verkörpert, egal auf welchem Device oder wie diese dargestellt werden.<br />

• Von Displayable abgeleitet ist e<strong>in</strong>e Klasse TextuallyDisplayable, die<br />

die Basis für alle Klassen verkörpert, die textuell dargestellt werden<br />

können.<br />

• Von Displayable abgeleitet ist e<strong>in</strong>e Klasse GraphicallyDisplayable, die<br />

die Basis für alle Klassen verkörpert, die graphisch dargestellt werden<br />

können.<br />

• Von Displayable abgeleitet ist e<strong>in</strong>e Klasse Pr<strong>in</strong>table, die die Basis für<br />

alle Klassen verkörpert, die ausgedruckt werden können (= am Drucker<br />

dargestellt werden können).<br />

• E<strong>in</strong>e Spielkarte ist nun so def<strong>in</strong>iert, dass sie sowohl textuell als auch graphisch<br />

dargestellt und auch ausgedruckt werden kann. Damit ist GameCard<br />

von allen drei entsprechenden Klassen abgeleitet.<br />

Neben anderen D<strong>in</strong>gen sieht man an diesem Design auch, dass oft viele Wege<br />

nach Rom führen. Früher hatten wir es mit e<strong>in</strong>em Design zu tun, <strong>in</strong><br />

dem Pr<strong>in</strong>table und Displayable zwei vone<strong>in</strong>ander unabhängige Basisklassen<br />

waren. Nun haben wir es mit der Interpretation zu tun, dass etwas,<br />

was druckbar ist, natürlich darstellbar ist, und zwar am Drucker. Selbiges<br />

gilt für die Textausgabe, denn sie ist semantisch <strong>in</strong> unserem Design etwas,<br />

was darstellbar ist, und zwar auf e<strong>in</strong>em Textbildschirm. Analog dazu ist die<br />

Interpretation für etwas graphisch Darstellbares.<br />

Genau diese verschiedenen Interpretationsmöglichkeiten e<strong>in</strong>- und desselben<br />

Sachverhalts s<strong>in</strong>d es auch, die Erfahrung und e<strong>in</strong>e ausführliche Designphase<br />

bei der OO <strong>Softwareentwicklung</strong> so unabd<strong>in</strong>gbar machen. Erfahrene<br />

und gute Softwareentwickler werden e<strong>in</strong>erseits schon von Beg<strong>in</strong>n an viele

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!