Erweiterte Objektstrukturen
Beispiel: Ein Funkgerät
(1) Übliche Vorgehensweise:
- Liste aller Spieler machen
- Diese nach Funkgeräten durchsuchen
- Jeweils nachsehen ob das Funkgerät auch eingeschaltet ist
- An alle entsprechenden Spieler Nachricht ausgeben.
(2) Master-Slave-Inherit
- Alle Funkgeräte melden sich beim Master an (bzw. ab).
- Dies kann beim Einschalten des Funkgeräts geschehen oder bereits beim create/remove.
- Beim Senden wird einer Nachricht an den Master geschickt (1), dieser verteilt sie dann (2) an alle Funkgeräte (Slaves)
(3) Strang (doppelt verkettete Liste)
- Hier kommt man ohne Master aus
- Jedes Objekt kennt nur seinen unmittelbaren Vorgänger und Nachfolger
- Um zu gewaehrleisten, dass alle Objekte angesprochen werden, wird eine Nachricht/ein Aufruf zunaechst in 'Minus'-Richtung bis zum ersten Objekt (dieses hat keinen Vorgänger) durchgereicht, ehe der Strang in 'Plus'-Richtung durchgearbeitet wird und in jedem Objekt die Nachricht übergeben/die Funktion ausgeführt wird.
- NACHTEIL: Es muss mindestens ein Objekt der Liste bekannt sein, um ein neues einzufügen.
(4) Ring
- siehe Strang, jedoch nur einfach verkettet und zu einem Ring geschlossen.
- VORTEIL: Kein Durchreichen. Stattdessen wird ein Zeiger auf das ursprüngliche Objekt mit weitergegeben, damit der Ring weiss, 'wann er aufhoeren muss')
- NACHTEIL: siehe Strang.
Siehe auch Dokumentation unter /d/.../police/i/