Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-08-2008, 14:00   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2006
Ort: undefined
Beiträge: 70
Composite Denkfehler?

Ich versuche gerade für ein kleines Framework einen Teil mit dem Composite Pattern umzusetzen. Ansatz ist der, dass es Composites und Components ( Leafs ) gibt. Composites erben von Component und stellen zusätzlich die Container-Funktionalität des Hinzufügens und Entfrernens von Components bereit. Ich stoße dabei an folgendes Problem. Bildlich gesprochen habe ich z.b. eine Leaf-Klasse, die von Component erbt. Ich habe eine Branch-Klasse, die von Leaf erbt, da die gleiche FUnktionalität wie Leaf selbst bereitgestellt werden muss. Heisst, der Aufruf der Methode cut() ( aus der Leaf-Deklaration ) auf einem Branch ist möglich über den Proxy callComponentMethod( "cut" ). Sie führt dabei cut() auf allen Child Composites und Leafs aus. Nun erbt aber Branch von Leaf und hat somit die Container-Funktionalität von Composite nicht. Wie kann ich Branch ein Composite und gleichzeitig ein Leaf sein lassen ? Gibts da elegante Wege über mittels Dekorierens oder Composition over Inheritance?

AbstractComposite -> AbstractComponent
Leaf -> AbstractComponent
__ ???
Branch -> Leaf
Branch -> AbstractComposite
__???

Geändert von _sevenDust (11-08-2008 um 14:02 Uhr)
_sevenDust ist offline   Mit Zitat antworten
Alt 11-08-2008, 14:31   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.379
Wieso sind das nicht alles Composites?
Omega Psi ist offline   Mit Zitat antworten
Alt 11-08-2008, 14:37   #3 (permalink)
Neuer User
 
Registriert seit: Feb 2006
Ort: undefined
Beiträge: 70
Technisch wäre das der beste, zumindest der einfachste, Weg. Warum sind nicht alles DisplayObjects DisplayObjectContainers ? Die Api sollte die Unterscheidung zwischen Containerelementen und terminierenden Leaf-Elementen aufzwingen, muss es aber im Endeffekt nicht Ich werde wohl nicht drumherum kommen, alle vom Typ Composite sein zu lassen.
_sevenDust 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



Alle Zeitangaben in WEZ +1. Es ist jetzt 23:20 Uhr.

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


Copyright ©1999 – 2014 Marc Thiele