Kann eine Instanz sich selbst ersetzen ?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Kann eine Instanz sich selbst ersetzen ?

Holger Schuh
Hallo Ihr,

ich hab mal ne ganz blöde Frage: "Kann eine Instanz sich selbst ersetzen ?".
Hintergrund ist folgender: ich habe ein Morph so abgewandelt das die Punkte an
denen man auf das Morph klickt sammelt (in einer OrderedCollection). Jetzt
hätte ich gerne das nach Verlassen des Morphs alle referenten auf die
OrderedCollection verweisen (und eben nicht mehr auf Morph selbst) ... sowas
wie
onMouseLeave: event

self := myOrderedCollection

funktioniert nicht. Auch der Umweg über

Replacer

replace: anObject with: anotherObject

anObject := anotherObject

funktioniert nicht. Inzwischen kann ich mir auch vorstellen das es doch ganz
sinnig ist wenn das System noch irgendwie an die Instanz rankommt.
(Mülleinsammeln z.B.). Aber wisst Ihr ob es da einen Mechanismus gibt mit dem
eine Instanz signalisieren kann : "Okay Leute, ab jetzt bin ich nicht mehr
zuständigen, wenn es Arbeit gibt wendet Euch bitte an denAnderenDa. Ober,
zahlen bitte" ?

Fragt sich Holger

attachment0 (189 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Kann eine Instanz sich selbst ersetzen ?

michaelperscheid
Hallo Holger,

ich hoffe ich versteh dich richtig, aber die von dir vorgeschlagene Lösung
wirkt recht merkwürdig zumindest für dein Problem (Ansatz von
Metaprogrammierung für ein allgemeines Problem). Ich empfehle dir vielleicht
mal ein paar Designpatterns anzuschauen, in Betracht kommen vermutlich
State, Mediator, Strategy etc, dass ist abhängig von deinem gesamten
Problemumfeld.

Mit freundlichen Grüßen
Michael Perscheid

> -----Ursprüngliche Nachricht-----
> Von: [hidden email] [mailto:squeak-ev-
> [hidden email]] Im Auftrag von Holger Schuh
> Gesendet: Montag, 28. Mai 2007 12:50
> An: Squeak in Germany / Squeak in Deutschland
> Betreff: [Squeak-ev] Kann eine Instanz sich selbst ersetzen ?
>
> Hallo Ihr,
>
> ich hab mal ne ganz blöde Frage: "Kann eine Instanz sich selbst ersetzen
> ?".
> Hintergrund ist folgender: ich habe ein Morph so abgewandelt das die
> Punkte an
> denen man auf das Morph klickt sammelt (in einer OrderedCollection). Jetzt
> hätte ich gerne das nach Verlassen des Morphs alle referenten auf die
> OrderedCollection verweisen (und eben nicht mehr auf Morph selbst) ...
> sowas
> wie
> onMouseLeave: event
>
> self := myOrderedCollection
>
> funktioniert nicht. Auch der Umweg über
>
> Replacer
>
> replace: anObject with: anotherObject
>
> anObject := anotherObject
>
> funktioniert nicht. Inzwischen kann ich mir auch vorstellen das es doch
> ganz
> sinnig ist wenn das System noch irgendwie an die Instanz rankommt.
> (Mülleinsammeln z.B.). Aber wisst Ihr ob es da einen Mechanismus gibt mit
> dem
> eine Instanz signalisieren kann : "Okay Leute, ab jetzt bin ich nicht mehr
> zuständigen, wenn es Arbeit gibt wendet Euch bitte an denAnderenDa. Ober,
> zahlen bitte" ?
>
> Fragt sich Holger


Reply | Threaded
Open this post in threaded view
|

Re: Kann eine Instanz sich selbst ersetzen ?

Bert Freudenberg
In reply to this post by Holger Schuh

On May 28, 2007, at 12:50 , Holger Schuh wrote:

> Hallo Ihr,
>
> ich hab mal ne ganz blöde Frage: "Kann eine Instanz sich selbst  
> ersetzen ?".

Ja - #becomeForward: oder #become: (letzteres ist symmetrisch,  
tauscht also die Objektidentitäten).

ABER: Dies ist eine Operation, die so gut wie nie beim "normalen"  
Programmieren eingesetzt wird. Wenn du das z.B. mit dem Morph und der  
Collection machst wie unten angedeutet, würde z.B. das System statt  
deines Morphs auf einmal versuchen, eine OrderedCollection auf den  
Bildschirm zu malen, was aller Wahrscheinlichkeit nach einen  
Systemabsturz zur Folge hätte.

Gib statt dessen einfach deine OrderedCollection zurück - eine  
Zugriffsmethode sollte doch nicht so schwer sein?

        bla := myMorph myCollection.

> Hintergrund ist folgender: ich habe ein Morph so abgewandelt das  
> die Punkte an
> denen man auf das Morph klickt sammelt (in einer  
> OrderedCollection). Jetzt
> hätte ich gerne das nach Verlassen des Morphs alle referenten auf die
> OrderedCollection verweisen (und eben nicht mehr auf Morph  
> selbst) ... sowas
> wie
> onMouseLeave: event
>
> self := myOrderedCollection
>
> funktioniert nicht. Auch der Umweg über
>
> Replacer
>
> replace: anObject with: anotherObject
>
> anObject := anotherObject
>
> funktioniert nicht. Inzwischen kann ich mir auch vorstellen das es  
> doch ganz
> sinnig ist wenn das System noch irgendwie an die Instanz rankommt.
> (Mülleinsammeln z.B.). Aber wisst Ihr ob es da einen Mechanismus  
> gibt mit dem
> eine Instanz signalisieren kann : "Okay Leute, ab jetzt bin ich  
> nicht mehr
> zuständigen, wenn es Arbeit gibt wendet Euch bitte an denAnderenDa.  
> Ober,
> zahlen bitte" ?
>
> Fragt sich Holger

- Bert -



Reply | Threaded
Open this post in threaded view
|

Re: Kann eine Instanz sich selbst ersetzen ?

Holger Schuh
In reply to this post by Holger Schuh
auhauehah,

hallo Ihr, erstmal danke für die Antworten. *schluck* Harter Tobak für nen
Hobbyprogrammierer, bis ich die Begriffe verstanden hab' wirds wahrscheinlich
ne Weile dauern.
Ich setzt mich morgen nochmal hin und versuch das mit
bla := myMorph myCollection.
wie von Bert vorgeschlagen. Es dauert halt nur ne ganze Weile bis der langsame
Benutzer myCollection zusammengeklickt hat und diese zurückgegeben werden
kann. FillInTheBlankMorph wartet da ja höflicherweise bis der User fertig
ist.
So als völlig weltfremder Mensch find ich diese Warteschleifen etwas
unästhetisch ..... und weil ich an myMorph nach dem Punkte sammeln so
garnicht interessiert bin, bin ich auf diese komische Idee gekommen (ja, ich
weiß das eventhandling und Bildschirmausgabe in einer warteschleife
ablaufen ...).
Aber ich brauch jetzt erstmal Luft ums Hirn, ich meld' mich nochmal wenn ich
die Vokabeln nachgeschaut habe.

Holger

On Monday 28 May 2007 13:03:26 Michael Perscheid wrote:

> Hallo Holger,
>
> ich hoffe ich versteh dich richtig, aber die von dir vorgeschlagene Lösung
> wirkt recht merkwürdig zumindest für dein Problem (Ansatz von
> Metaprogrammierung für ein allgemeines Problem). Ich empfehle dir
> vielleicht mal ein paar Designpatterns anzuschauen, in Betracht kommen
> vermutlich State, Mediator, Strategy etc, dass ist abhängig von deinem
> gesamten Problemumfeld.
>
> Mit freundlichen Grüßen
> Michael Perscheid
>
> > -----Ursprüngliche Nachricht-----
> > Von: [hidden email] [mailto:squeak-ev-
> > [hidden email]] Im Auftrag von Holger Schuh
> > Gesendet: Montag, 28. Mai 2007 12:50
> > An: Squeak in Germany / Squeak in Deutschland
> > Betreff: [Squeak-ev] Kann eine Instanz sich selbst ersetzen ?
> >
> > Hallo Ihr,
> >
> > ich hab mal ne ganz blöde Frage: "Kann eine Instanz sich selbst ersetzen
> > ?".
> > Hintergrund ist folgender: ich habe ein Morph so abgewandelt das die
> > Punkte an
> > denen man auf das Morph klickt sammelt (in einer OrderedCollection).
> > Jetzt hätte ich gerne das nach Verlassen des Morphs alle referenten auf
> > die OrderedCollection verweisen (und eben nicht mehr auf Morph selbst)
> > ... sowas
> > wie
> > onMouseLeave: event
> >
> > self := myOrderedCollection
> >
> > funktioniert nicht. Auch der Umweg über
> >
> > Replacer
> >
> > replace: anObject with: anotherObject
> >
> > anObject := anotherObject
> >
> > funktioniert nicht. Inzwischen kann ich mir auch vorstellen das es doch
> > ganz
> > sinnig ist wenn das System noch irgendwie an die Instanz rankommt.
> > (Mülleinsammeln z.B.). Aber wisst Ihr ob es da einen Mechanismus gibt mit
> > dem
> > eine Instanz signalisieren kann : "Okay Leute, ab jetzt bin ich nicht
> > mehr zuständigen, wenn es Arbeit gibt wendet Euch bitte an denAnderenDa.
> > Ober, zahlen bitte" ?
> >
> > Fragt sich Holger


attachment0 (189 bytes) Download Attachment