OOP: wie programmiert man ein Notify?
19.07.2011 um 20:39hallo,
es get mir um die ganz low-level ebene, nämlich assembler (m68k). Ich schreibe zum Spaß an einem GUI system und möchte eine ListView mit Slidern verbinden und umgekehrt.
Im moment glaube ich, man kann es so lösen, dass ein gui-objekt grundsätzlich eine verkettet list mit nodes enthält, für jedes installierte notify eine node. die struktur dieser node möchte ich vielleicht so machen:
trigger_attribute_id#
methode
destination_object_pointer
data_pointer
Die Daten stehen im klassenindividuellen teil der Objektstruktur. Und wenn ein Objekt einen seiner notifizierbaren attribute ändert oder eine änderung darauf empfängt, ruft es Notify(selfpointer, trigger_attribute_id) auf...
aber,
wie vermeidet man schleifen, bei denen die message wieder zurück zum sender kommt und dann abgebrochen werden müsste?
geht es vielleicht ganz viel schlauer? Mi rgefällt das nicht, daß der dispatcher einer klasse immer selber dieses Notify(mit_zeiger_auf_sich_selbst) aufrufen muss!
es get mir um die ganz low-level ebene, nämlich assembler (m68k). Ich schreibe zum Spaß an einem GUI system und möchte eine ListView mit Slidern verbinden und umgekehrt.
Im moment glaube ich, man kann es so lösen, dass ein gui-objekt grundsätzlich eine verkettet list mit nodes enthält, für jedes installierte notify eine node. die struktur dieser node möchte ich vielleicht so machen:
trigger_attribute_id#
methode
destination_object_pointer
data_pointer
Die Daten stehen im klassenindividuellen teil der Objektstruktur. Und wenn ein Objekt einen seiner notifizierbaren attribute ändert oder eine änderung darauf empfängt, ruft es Notify(selfpointer, trigger_attribute_id) auf...
aber,
wie vermeidet man schleifen, bei denen die message wieder zurück zum sender kommt und dann abgebrochen werden müsste?
geht es vielleicht ganz viel schlauer? Mi rgefällt das nicht, daß der dispatcher einer klasse immer selber dieses Notify(mit_zeiger_auf_sich_selbst) aufrufen muss!