# objektkapselung und codedesign



## Nekromant (26. Okt 2003)

häufig stolpere ich über das selbe design problem:

ich mach es mal anhand eines konkreten beispieles fest.
sagen wir, ich habe ein spiel, bei dem ein raumschiff durch ein eigenes objekt/klasse
repräsentiert wird. das schiff trägt ein weiteres objekt inne, nämlich eine animation, 
die nix weiter tut,  als die einzelphasen der animation des schiffes zu beherbergen
und sie in richtiger reihenfolge rückzugeben.

nun zum problem:
das verhältnis der beiden objekte ist klar: das schiff greift auf attribute der animation
bei bedarf zu, wird das schiff zerstört oder umgelenkt, signalisiert es der animation, 
das frameset zu wechseln. 
nun gibt es aber auch situationen, wo die änderung nicht vom schiff, sondern von der
animation selbst abhängt. soll die animation beispielsweise 50 frames abspielen und 
dann wieder das default-frameset aktivieren, gibts ein problem, für das ich generell
zwei lösungen sehe:

1.
das schiff fragt immer wieder ab, ob die animation am ende ist und sich ändern soll.
das ist nicht nur inperformant sondern auch schlecht designt.

2. 
ich erlaube der animation zugriff auf das schiff selbst (die es vorher natürlich nicht
hatte), per referenz oder einem observer-pattern. so wäre kommunikation in beide richtungen ohne abfrage möglich.
die idee gefällt mir aber auch nicht, da der gute stil der objektkapselung dahin wäre und vor allem ein höherer speicheraufwand anfiele.


----------



## utnovetur (25. Nov 2003)

> und vor allem ein höherer speicheraufwand anfiele

Das sind 4 Byte für eine Referenz.


----------

