| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Feb 2009
Beiträge: 15
| Singleton mit Bibliothekssymbol verknüpfen
Hi, ich frage mich ob es möglich ist eine Singleton Klasse mit einem Bibliothekssymbol zu verknüpfen oder ob es einen besseren Weg gibt für meinen Anwendungsfall. Ich habe eine App mit einem MovieClip in dem verschiedenartige Informationen ausgegeben werden, ähnlich einem Debugging Fenster. Dieses Fenster möchte ich von unterschiedlichen Orten her aufrufen. Angenommen mal dieses Ausgabefenster heißt InfoPanel, dann möchte ich aus einem beliebigen Ort in meiner App sagen können panel.log("something"); Anstatt "panel" jetzt zwischen allen Objekten hin- und herzureichen was ich sehr umständlich finde, dachte ich mir das als Singleton anzulegen: panel = InfoPanel.getInstance(); panel.log("something"); Daher meine Idee, InfoPanel als Singleton anzulegen und mit einem Bibliothekssymbol zu verknüpfen. Geht das überhaupt, und wenn ja, wie muss das Singleton aussehen? Oder gibt es noch einen besseren Weg? |
| | |
| | #3 (permalink) |
| debug("Gollum") Registriert seit: Feb 2006 Ort: Berlin
Beiträge: 441
|
Achso....was mir noch einfällt. In AS3, wenn es denn so sein sollte, hat man jetzt wunderschöne setter und getter. Das heisst ein Singleton kann nun so aussehen Code:
lg
__________________ ______________________________________ |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Feb 2009
Beiträge: 15
|
Ja, Danke. Allerdings ear das mit dem Debugger nur ein Beispiel, es ging mir um den generellen Fall. Aber es gibt ja unterschiedliche Arten wie so ein Singleton realisiert werden kann. Ich habe jetzt eins gefunden das funktioniert wie ich mir das Vorstelle. Es gibt nur ein Problem - wenn ich aus einer anderen Klasse heraus im Konstruktor eine Instanz hole, mit Singleton.getInstance() oder auch Singleton.instance (wobei ich instance klein schreiben würde weil Namen in CamelCase ja aus Konvention für Klassennamen reserviert sind), dann kann es vorkommen dass dieses getInstance() ausgeführt wird bevor das Singleton auf der Bühne instantiiert wurde. Was zu einem Fehler führt wenn das Singleton auf der Bühne instantiiert wird denn das geschieht ja über new Singleton(). Aber ist nicht schlimm, ich muss einfach drauf achten dass alle getInstance() Aufrufe erst passieren wenn das Symbol auf der Bühne instantiiert wird. |
| | |
| | #6 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.899
|
Nein, das ist falsch. Das Objekt muss im Singleton erzeugt werden, sonst ist es kein Singleton. Am besten machst du das so, dass du über eine Factory eine Instanz einer internal deklarierten Klasse zu Verfügung stellst. So kannst du sicherstellen, dass du
|
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Feb 2009
Beiträge: 15
|
Stimmt. Was ich da habe ist eine etwas eigenwillige Implemenation eine Singletons - und in wirklichkeit gar kein echtes Singleton. Es ist eine Klasse die ein einziges mal über "new" instantiiert werden kann, und sich danach wie ein Singleton verhält. Dadurch kann es aber eben auch mit einem Bibliothekssymbol verknüpft und instantiiert werden.
|
| | |
| | #8 (permalink) | |
| debug("Gollum") Registriert seit: Feb 2006 Ort: Berlin
Beiträge: 441
| Zitat:
![]() PublicStatic __privateMethode publicMethode getter setter _privateVar publicVar PUBLIC_CONST_VAR ![]() lg schinki
__________________ ______________________________________ | |
| | |
| | #9 (permalink) | |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.899
| Zitat:
| |
| | |
| | #11 (permalink) | |
| debug("Gollum") Registriert seit: Feb 2006 Ort: Berlin
Beiträge: 441
| Zitat:
Vor einer Static MUSS ja immer eine Klasse angegeben werden! Und Klasse in Klasse gibt es nicht! Zumindest ist das mir in Flash nicht bekannt!
__________________ ______________________________________ | |
| | |
| | #13 (permalink) |
| thinkin aBout tha lib. Registriert seit: Nov 2001 Ort: Kölle
Beiträge: 1.379
| Hmm http://www.bigroom.co.uk/blog/better-without-singletons Ich bin schon länger der Meinung das Singletons(wie dieser nette Blog Eintrag auch meint) nicht wirklich die Lösung sind. Habe schon öfter die Erfahrung gemacht das man auch wenn man jetzt meint: So: den code mache ich jetzt statisch nach längerer Zeit drauf kommt: Ups da brauch ich mehr dynamik drin. Und dann fängt das umschreiben an. Und man hofft es geht und am abend geht man erschöpft nach Hause. IOC wäre mein Ansatz aber zu deinem Thema aber was Bibliothekensymbol angeht: wenn man das verlinkt ist es ganz normal als Klasse verfügbar: man kann also auch so verrückt sein und wenn man schon den Singleton missbraucht dann das auch ordentlich machen: Code: import com.mypage.MyLibraryItem;
class MyClass
{
public static const INSTANCE: MyClass = new MyClass( new MyLibraryItem() );
}
__________________ Back to community with http://leichtgewicht.at |
| | |
| | #14 (permalink) | |
| debug("Gollum") Registriert seit: Feb 2006 Ort: Berlin
Beiträge: 441
| Zitat:
Wir verwenden Singeltons und die machen immer Sinn!!! Sie sind ein fester Bestandteil unseres Frameworks! lg Schinki
__________________ ______________________________________ | |
| | |
| | #15 (permalink) |
| thinkin aBout tha lib. Registriert seit: Nov 2001 Ort: Kölle
Beiträge: 1.379
| Hmm
Also ich weiss schon das man so ziehmlich alles machen kann aber jetzt mal in Flashersprache: Singletons sind das neue global. Was hat man früher nicht alles in global reingehauen das chaos erzeugt hat? Flashprojekte werden selten alt genug damit das eine Rolle spielt . Aus dem Aspekt heraus Singletons verwenden ist ja auch okay - aber wenns eben schon keine Rolle spielt obs schön aussieht oder lange hält dann kann man sich die Methode gleich auch sparen und speichert einfach eine Konstante irgendwo -> Weniger code; Selber Effekt.
__________________ Back to community with http://leichtgewicht.at |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| singleton |
| Themen-Optionen | |
| Ansicht | |
| |