Toon posts:

[as2] achterhalen aanroepende Observable in method Observer

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb een class observer die een Observer-interface implementeert. die class observeert meerdere Observables, die elk wanneer ze wijzigen de method update van observable aanroepen.
Om te bepalen wat die update method zou moeten doen, wil ik eigenlijk kunnen achterhalen door welk object hij wordt aangeroepen, zoiets:
Flash ActionScript:
1
2
3
4
5
6
7
public function update(infoObject:Object) {
    if (callingObject instanceof Observable1) {
        //doe iets
    } else if (callingObject instanceof Observable2) {
        //doe iets anders
    }
}

Een manier zou zijn om update door iedere observable aan te laten roepen met zichzelf als parameter:
Flash ActionScript:
1
observer.update(this);

en dan de observer de data die hij nodig heeft daaruit te laten halen. Ik kan me echter voorstellen dat dat qua geheugengebruik niet zo efficient is, zeker wanneer de observers erg groot worden. Een alternatief is om elke observable een array als parameter mee te laten sturen, met daarin bv een id-string:
Flash ActionScript:
1
observer.update(new Array(id, infoObject));

Ik vind het allebei niet zo heel handig. Weet iemand een manier om het aanroepende Object te achterhalen? (nb: arguments.caller werkt hier niet bij, die geeft nl de method, niet het object dat die method bezit)