| | #1 (Permalink) |
| Neuer User Registriert seit: Jun 2001 Ort: berlin
Beiträge: 829
|
Hi Leute, des öfteren will man ja wissen welche Methoden eines Objektes in welcher Reihenfolge aufgerufen werden. Mir ist gerade aufge- fallen, dass man dieses ganz einfach lösen kann, in dem man die Orginalmethode überschreibt und innerhalb der neuen Methode einen trace macht und dann die Orginalmethode aufruft. In anderen Sprachen wie Java, C++ oder PHP wäre das wohl nicht so einfach, da soll nochmal jemand behaupten Actionscript wäre keine mächtige Sprache...:-) ActionScript:
__________________ gobogo |
| | |
| | #2 (Permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
Hi Holger, coole Idee, da spart man sich doch einen Haufen Schreibarbeit. Hier ist noch eine etwas andere Version, die die jeweils zuletzt zugwiesene Methode traced. Dann kann man selektieren, was man tracen will und was nicht, ohne dass man den Namen angeben muss. ActionScript:
Vielen Dank für die gute Idee, mfg r.
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
| | #3 (Permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
Hehe, und wo wir schonmal dabei sind, hier ist noch eine Version, die mit resolve arbeitet: ActionScript:
mfg r.
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
| | #4 (Permalink) |
| Neuer User Registriert seit: Jun 2001 Ort: berlin
Beiträge: 829
|
Hehe, die __resolve würde ich aber dafür nicht verschwenden, aber genial ist es auf alle Fälle...;-) Hier nochmal mit Arguments und OnlyLastMethod- Flag. Kann man es nicht mit irgendeinem ASNative schaffen an den Text der Funktion ranzukommen? In Javascript ist das ja das normale toString-Verhalten einer Funktion. Wäre halt Klasse wenn man die erwarteten Argumente- Bezeichner mit ausgeben könnte. *grübel* ActionScript:
__________________ gobogo |
| | |
| | #5 (Permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
Eine Methode kenne ich, dazu muss man eine Funktion innerhalb der zu tracenden Funktion definieren, dann hat man Zugriff auf das Activation- Objekt der aeusseren Funktion. ActionScript:
Die innere Funktion könnte man in eine include-Datei legen, und überall dort wo man sie braucht, includen. Nicht besonders schön ![]() mfg r.
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
| | #7 (Permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
sach ich doch ich habe gerade die design patterns bestellt. ich bin gespannt, ich habe nämlich gerade ein groesseres projekt abgeschlossen, bei dem das sicher nützlich gewesen wäre mfg r.
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
| | #8 (Permalink) |
| Coalado Registriert seit: Jun 2001 Ort: Lagcity.de
Beiträge: 683
| debug
heir passen vieleicht folgene sachen ganz gut rein: Mich hat es beim debuggen hin und wieder gestört, dass ich nicht wusste welcher Klasse eine instanz angehört. typeof ist da nur bedingt hilfreich. damit gehts aber eigentlich ganze gut...: ActionScript:
MFG tumetom |
| | |
| | #9 (Permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
@hok Arg, jetzt habe ich gerade ne Stunde verloren, bis ich gemerkt habe, dass die Ersatz-Routinen von traceMessages kein Ergebnis liefern. Das wird teuer für dich @tumetom Das sieht wild aus ![]() Eine andere Möglichkeit ist die Zuweisung des Namens an die Klasse: Klasse.classname = "MeineKlasse" und die Abfrage von this.constructor.classname in der Instanz. mfg r.
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
| | #10 (Permalink) |
| Coalado Registriert seit: Jun 2001 Ort: Lagcity.de
Beiträge: 683
|
hmm oder gleich als prototype... dann kann man sich den umweg über dne Konstruktor sparen.. warum so einfach wenns auch so schön kompliziert geht...?? Wies nicht emhr genau was.. aber irgendwas hab ich mir dabei wohl mal gedacht |
| | |
| | #11 (Permalink) |
| Neuer User Registriert seit: Jun 2001 Ort: berlin
Beiträge: 829
|
@tumetom Sieht wirklich interessant aus, nur mit dem Array funktionierts nicht, Array hat ja sein eigene toString, die den join(',') macht. @bokel Hups, dafür haste jetzt einen gemeinen Käfer bei mir gut...:-) Hier ist noch eine neue Version, die bei jeder Nachricht die Millisekunden seit der letzten Nachricht ausgibt. Den Bug habe ich natürlich rausgenommen...:-) Werde es wohl nochmal ändern, so dass die Zeit ausgeben wird die der Methoden-Aufruf verbraucht hat, dann hat man einen schönen Performance-Profiler. netten Gruß, Holger ActionScript:
__________________ gobogo Geändert von hOk (03-04-2003 um 20:45 Uhr) |
| | |
| | #12 (Permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
@hok Das mit dem Profiler ist eine gute Idee. Man koennte auch gleich noch die Werte für einzelne Funktionen aufaddieren, dann sieht man direkt in welchen Funktionen insgesamt die meiste Zeit verbracht wird und wo es sich am ehesten lohnt zu optimieren. @tumetom =) mfg r .
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
| | #13 (Permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
@hok Ich habe es noch nicht genau analysiert, aber ich glaube, wenn man mit Vererbung arbeitet, gibt es irgendwie auch Probleme mit traceMessages. Ich bekomme da manchmal den Rekursionsfehler (256 Stufen). -------------- So jetzt sind die "Design Patterns" (Gamma et. al.) da. Das geht ja schon gleich gut los mit der Beschreibung eines Wysiwig-Editors in OOP. Interessant finde ich die Aussage, der Komposition gegenüber der Vererbung den Vorzug zu geben. Da muss ich auch erstmal drüber nachdenken, wie das in meinen Projekten aussehen würde. Das Problem, dass Änderungen von Oberklassen u. U. zu Anpassungen in Subklassen führen können, ist mir auch schon untergekommen. Die Komposition ist aber halt auch immer etwas aufwendiger, wegen der Weiterleitung an das betreffende Objekt. Im Vergleich zum Fowler würde ich sagen, dass das Buch ein wesentlich höheres Abstraktionsniveau behandelt. Den Fowler kann jeder Programmierer gebrauchen, der seinen Stil verbessern möchte, das hier ist schon eher was für Leute mit viel Erfahrung in OOP. mfg r.
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
| | #14 (Permalink) |
| Neuer User Registriert seit: Jun 2001 Ort: berlin
Beiträge: 829
|
Ja das denke ich auch. Zum Thema Komposition versus Generalisierung: Ich denke das was die GOF meinen ist, das man nicht ohne wirklich trifftigen Grund generalisieren soll, sondern nur dann wenn man abstrakte Gemeinsamkeiten feststellt. Oft wird ja, geerbt um mal eben noch mehr Funktionalitäten in einer Klasse zu haben. Ich denke die GOF wollen einfach nur, die auch von Fowler beschriebene, semantische Distanz zwischen Methoden und Klasse vermeiden. nette Gruß, Holger
__________________ gobogo |
| | |
| | #15 (Permalink) |
| querdenker Registriert seit: Jun 2001 Ort: formel1-stadt hockenheim
Beiträge: 4.734
|
gefällt mir der threat... hier habe ich noch was, dass den klassennamen der klasseninstanz zur verfügung stellt und zeitgleich der klasse und der instanz, jeweils ihren namen ausgibt... ActionScript:
output: diddel._className = dideldum; diddel._ownName = diddel; dideldum._ownName = dideldum bezüglich der argumente in _getName(calling...) hatte ich hier noch das problem dass ich 'this' von außerhalb der fkt nicht gezielt ansteuern konnte....*grübel* deshalb hatte ich es als argument mit an die fkt übergeben... *anyideas?* vielleicht hilft´s ja, dem ein oder anderen... oder passte das jetzt nicht hierher..? *gugg* greetz kelor |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |