5 Objektorientiertes Design
5 Objektorientiertes Design
5 Objektorientiertes Design
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
70 3 <strong>Objektorientiertes</strong> <strong>Design</strong><br />
Entwurf à la »Schnell-Finger«<br />
Herr »Schnell-Finger« überlegt nicht lange und startet sofort seine IDE. Während diese<br />
noch hochfährt, hat er bereits ein paar Ideen. Kaum ist das Editor-Fenster geöffnet, legt<br />
er los. Klingt alles recht einfach, also wird schnell die folgende Klasse erstellt:<br />
public class Counter<br />
{<br />
public int count = 0;<br />
}<br />
public Counter()<br />
{<br />
}<br />
So, nun ist er schon fertig. Die Variable count ist öffentlich, kann also von überall abgefragt<br />
und verändert werden. Rücksetzen erfolgt über eine Zuweisung von 0. Zufrieden<br />
speichert er die Klasse. Am nächsten Tag fragt der Kollege »User«, wie weit die<br />
Klasse Counter wäre, und bekommt die Antwort: »Längst fertig!« Der Kollege »User«<br />
schaut sich die Klasse an und sagt: »Naja, richtig objektorientiert ist das nicht. Es fehlt<br />
an Kapselung: Du veröffentlichst deine Attribute und bietest keine Zugriffsmethoden<br />
an.« Etwas verärgert über den pingeligen Kollegen macht sich Herr »Schnell-Finger«<br />
nochmal an die Arbeit und kommt nach kurzer Zeit zu folgender Umsetzung:<br />
public class Counter<br />
{<br />
public int count = 0;<br />
public Counter()<br />
{<br />
}<br />
public int getCounter()<br />
{<br />
return count;<br />
}<br />
}<br />
public void setCounter(int count)<br />
{<br />
count = count;<br />
}<br />
Die Klasse Counter ist laut Herrn »Schnell-Finger« nun einsatzbereit. Daher wollen<br />
wir diese nun zum Zählen von grafischen Figuren nutzen und schauen, wie sich diese<br />
Klasse in das zuvor vorgestellte Anwendungsgerüst an den durch TODO-Kommentare<br />
markierten Stellen einfügen lässt:<br />
// 2 Zähler initialisieren<br />
final Counter lineCounter = new Counter();<br />
final Counter rectCounter = new Counter();<br />
for (final GraphicObject graphicObject : graphicObjects)<br />
{<br />
graphicObject.draw();