• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-08-2010, 19:29   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2007
Beiträge: 135
singleton KLasse | FB4

Hallo


ich wollte mal etwas zu dem singleton-konstrukt fragen, dass ich aus einem adobe-code habe:



Code:
public class foo
	{
		private static var instance:foo;
					
		public function foo()
		{
			if (instance != null)
				throw new Error("Singleton - Can't Instanstiate");
			
			instance = this;
		
		}
		public  static function getInstance():foo
		{
			if (instance == null)
			{

				
				instance = new foo();
				

				
			}
			
			return instance;
		}


                 public function bar ():void
                 {}

}

und dann


Code:
			private var myClass:foo	= foo.getInstance();
		
			
			myClass.bar();  //Fehlermeldung siehe unten
in FB kann ich nachdem ich die Klasse mit getInstance() in eine Variable vom typ der klasse gelesen habe, keine öffentlichen nichtstatischen Funktionen der Klasse über diese Variable aufrufen. dann kommt in flashBuilder eine Fehlermeldung:


Diese Zeile enthält Mehrfachmarkierungen:
-1120: Zugriff auf eine nicht definierte Eigenschaft foo.
-foo


ist das so gewollt? .. so dass ich nur statische methoden aufrufen kann ?

über foo.static_bar()

Geändert von carsten cs (11-08-2010 um 19:32 Uhr)
carsten cs ist offline   Mit Zitat antworten
Alt 11-08-2010, 19:35   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.856
hast du mal den Link?
Omega Psi ist offline   Mit Zitat antworten
Alt 11-08-2010, 19:47   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2007
Beiträge: 135
Link?

ich arbeite nur lokal ...

??

wenn man mit mehreren an einem project zusammenarbeit, wäre es natürlich interessant die Dinge gleich auf den server zu tun ..

aber so weit bin ich noch nicht ..


wenn Du mir da Tips geben möchtest .. keine Einwände!! da gibt es bestimmt irgendwelche Tools etc.


...

aber theoretisch müßte man schon beliebig viele Instanzen von der Klasse erstellen können, die immer dieselbe Instanz ansprechen und zusätzlich auch nicht statische öffentliche Funktionen ansprechen können ??

Geändert von carsten cs (11-08-2010 um 19:50 Uhr)
carsten cs ist offline   Mit Zitat antworten
Alt 11-08-2010, 19:54   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.856
Ich meinte den "Adobe Code".
Omega Psi ist offline   Mit Zitat antworten
Alt 11-08-2010, 20:00   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2007
Beiträge: 135
das war der code von der vom FB generierten ServiceManager.as.

Code:

package services
{

import flash.utils.Dictionary;

import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import services.bh_newsletterstart_xnr_service.BH_newsletterstart_xnr_Service;

public class ServiceManager
{
	private static var instance:ServiceManager;
	
	private var servicesMap:Dictionary = new Dictionary();
	
	public function ServiceManager()
	{
		if (instance != null)
			throw new Error("Singleton - Can't Instanstiate");
		
		instance = this;
	}
	
	public static function getInstance():ServiceManager
	{
		if (instance == null)
			instance = new ServiceManager();
		
		return instance;
	}
	
	private function faultHandler(event:FaultEvent):void
	{
		Alert.show(event.fault.faultString + "\n" + event.fault.faultDetail);
	}

	public function get foo_Service()......
	{
		
		var service:........
		
		return service;
	}

}

}
carsten cs ist offline   Mit Zitat antworten
Alt 11-08-2010, 20:04   #6 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.856
Und du hast keinen Namespace verwendet?
Omega Psi ist offline   Mit Zitat antworten
Alt 11-08-2010, 20:12   #7 (permalink)
Neuer User
 
Registriert seit: Mar 2007
Beiträge: 135
hier private ..oder ?:

Code:
private var myClass:foo	= foo.getInstance();

oder meinst du was anderes ?
carsten cs ist offline   Mit Zitat antworten
Alt 11-08-2010, 20:23   #8 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.856
Ich meinte ein package.
Omega Psi ist offline   Mit Zitat antworten
Alt 11-08-2010, 20:30   #9 (permalink)
Neuer User
 
Registriert seit: Mar 2007
Beiträge: 135
nein das package ist bei mir da ... ich habe nur gedacht, damit kann sowieso niemand was anfangen.

das nächste mal sende ich es mit.


vielleicht ist dieses singletonKonstrukt wirklich nur dazu da, dass man daran erinnert wird, dass man die Klasse static benutzt wollte und nun auch soll.
carsten cs ist offline   Mit Zitat antworten
Alt 11-08-2010, 20:35   #10 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.856
Nein, dafür sind Singeltons nicht da. Ich würde meinen, dir fehlt ein import für foo.
Omega Psi ist offline   Mit Zitat antworten
Alt 11-08-2010, 20:41   #11 (permalink)
Neuer User
 
Registriert seit: Mar 2007
Beiträge: 135
ne das ist da ... automatisch von FB gesetzt
carsten cs ist offline   Mit Zitat antworten
Alt 11-08-2010, 20:46   #12 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.856
Sorry, an der Stelle kann ich sagen, dass es einen Fehler bei der Verwendung gibt. Da ich aber keinen konkreten Code von dir habe, kann ich nur raten.
Omega Psi ist offline   Mit Zitat antworten
Alt 11-08-2010, 20:56   #13 (permalink)
Neuer User
 
Registriert seit: Mar 2007
Beiträge: 135
aber kann es nicht auch sein ... weil das singleton-Konstrukt nur eine Notlösung ist, wenn es keine statischen klassen gibt .. dass adobe möchte, dass man da stück für stück abstand von findet und es eigentlich nur noch dazu da ist eine Fehler-meldung auszugeben.
carsten cs ist offline   Mit Zitat antworten
Alt 11-08-2010, 21:11   #14 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.856
Du sorry, aber ich kann dir nur empfehlen dich ein wenig mit Design Patterns zu befassen. Deine Annahme ist falsch. Ein Singleton soll sicherstellen, dass es anwendungsweit nur eine Instanz einer Klasse gibt.

Es ist ein Mechanismus der in der Form seit Jahren verwendet wird. Der Fehler wird mit größter Wahrscheinlichkeit bei dir liegen.
Omega Psi ist offline   Mit Zitat antworten
Alt 31-08-2010, 16:38   #15 (permalink)
Neuer User
 
Benutzerbild von Silver_Surfer
 
Registriert seit: Sep 2009
Beiträge: 229
Zitat:
Zitat von Omega Psi Beitrag anzeigen
Du sorry, aber ich kann dir nur empfehlen dich ein wenig mit Design Patterns zu befassen. Deine Annahme ist falsch. Ein Singleton soll sicherstellen, dass es anwendungsweit nur eine Instanz einer Klasse gibt.

Es ist ein Mechanismus der in der Form seit Jahren verwendet wird. Der Fehler wird mit größter Wahrscheinlichkeit bei dir liegen.
Ich gebe dir 100% recht, es geht nichts über gute singleton Klassen und DesignPatterns!

Meine sehen so aus und funktionieren bestens..

PHP-Code:
package controllers.application
{    

    public class 
AuthController
    
{
        
        public static var 
instance:AuthController=null;        
        
        
        
        public function 
AuthController(pvt:AuthControllerEnforcer)
        {
        }
        
        
        
        public static function 
getInstance():AuthController
        
{
            if (
instance == nullinstance = new AuthController( new AuthControllerEnforcer()); 
            
            return 
instance;
        }
        
    }
}
internal class AuthControllerEnforcer{}


private var 
authController:AuthController AuthController.getInstance(); 

Geändert von Silver_Surfer (31-08-2010 um 16:40 Uhr)
Silver_Surfer ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Einfache (Singleton-)Klasse -> Syntaxfehler?! pink! ActionScript 2 1 22-07-2007 18:45
inspectable und singleton? troner Softwarearchitektur und Entwurfsmuster 16 11-10-2006 13:16
rätselhafte ereignisse??? (mit singleton) bryan.fury Softwarearchitektur und Entwurfsmuster 14 12-05-2005 23:22
frage zu singleton nky Softwarearchitektur und Entwurfsmuster 77 17-02-2005 16:22
DesignPattern: Singleton bokel Softwarearchitektur und Entwurfsmuster 2 30-08-2003 11:03


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele