| |||||||
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) |
| Flashaholic Registriert seit: Feb 2003 Ort: Berlin
Beiträge: 1.459
|
hab mal heute nen kleinen SelectManager gebastellt. mit multi und single select PHP-Code: .PHP-Code: .mfg alex
__________________ TVNEXT Solutions Geändert von atothek (31-10-2004 um 19:17 Uhr) |
| | |
| | #2 (permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
Ich finds ganz gut. Folgendes ist mir aufgefallen: 1. Anstatt des s für Vielzahl würde ich List anhängen, das macht deutlicher, dass es eine Liste ist, also z.B. _elementList anstatt _elements 2. Die Typisierung mit Object solltest du weglassen, kaneda hat das mal analysiert, Flash macht da u.U. Probleme. 3. Die Elemente scheinen ein Interface (onSelect, onDeselect, setSelectManager) zu haben, das würde ich explizit machen 4. exists würde ich eher find nennen, von exists würde ich Boolean erwarten 5. Die Verwaltung des/der selektierten Objekte würde ich auslagern. Du könntest vielleicht zwei Klassen SingleSelection und MultipleSelection dafür benutzen, die dann vom Manager je nach Bedarf benutzt werden können. 6. Die ElementListe könnte man vielleicht zusaetzlich noch als abstrakten Datentyp auskoppeln, den man dann an anderer Stelle auch noch benutzen kann. 7. Die Logik in setSelected ist mir zu komplex. Das äußere if würde schon durch die Delegation von setSelected an SingleSelection/MultipleSelection verschwinden. Aber zusaetzlich würde ich setSelected noch in select und deselect aufteilen. mfg r.
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
| | #3 (permalink) |
| Flashaholic Registriert seit: Feb 2003 Ort: Berlin
Beiträge: 1.459
|
@bokel vielen dank für die klasse kritik hab mich auch dieser gerne angenommen und habe vieles davon umgesetzt. Freut mich mal eine so ausführliche beurteilung zu bekommen, da kann man ja nur lernen. Find auch alle punkte passend .Anbei nun mal eine umsetzung des ganzen mit einer kleinen demo Anwendung mfg alex
__________________ TVNEXT Solutions |
| | |
| | #4 (permalink) |
| nerdig working Registriert seit: Jul 2001 Ort: Hamburg
Beiträge: 5.832
|
klasse, ein ganz tolles OOP-Lehrstück an dem man viel lernen kann. zwei kleine frage kommen mir beim überfliegen auf die schnelle: ActionScript:
warum ist AbstractSelection eine klasse und kein interface? was übersehe ich? gruß michael
__________________ beat it | shake it | fish it | just pudding | love-o-meter flashforum sidebar installieren Geändert von michael (01-11-2004 um 23:42 Uhr) |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Sep 2001 Ort: Neckarsulm
Beiträge: 273
|
Was passiert wenn type weder 'singel' noch 'multi' entspricht? Dann würde sich die Klasse in einem nicht erlaubtem Zustand befinden, da _selection undefined wäre. Ich würde den Typ nicht als String sonder als Number übergeben. Die geeignete Nummer erhält man über Konstanten in der Klasse SelectManager. Bei Strings kann es leicht zu Fehlern bei der Eingabe kommen. PHP-Code: Falls es dennoch eine abstrakte Klassen bleiben soll, würde ich zumindest in jeder Methode die überschrieben werden soll, eine AbstractOperationException werfen, damit wenigstens zur Laufzeit erkannt wird, das man vergessen hat eine Methode zu implementieren. Der Name des Interfaces ISelectManager verwirrt mich ein wenig. Ich würde daraus schließen, dass dieses Interface vom SelectManger implementiert werden sollte und nicht vom SelectItem.Ansonsten schöne Sache. ![]() Gruß Simon |
| | |
| | #6 (permalink) |
| Flashaholic Registriert seit: Feb 2003 Ort: Berlin
Beiträge: 1.459
|
@gutknut thx das mit dem doppelten prüfen ist einer der klassiker, code proggen und nächsten tag überarbeiten und dabei übersehen danke für den Hinweis, has natürlich korrigiert. Die AbstractSelection ist nun das Interface Selection, hab verpeilt das man auf ein Interface Typesieren kann deshalb wars eine klasse. zudem eine kleine ergänzung im interface ISelectManager und im SelectManager wenn schon vorher ein mc per default selektiert ist wird dies nun auch erkannt. mfg alex Edit: @MiM haben wohl gleichzeitig gepostet das mit dem Namen des interfaces ist wirklich verwirrend aber Selectable ist in dem fall auch nicht wirklich passend Managerable ist auch komisch hast du vielleicht eine Idee? Das mit den Konstanten ist ne Gute Idee werde ich mal mit einbauen.
__________________ TVNEXT Solutions Geändert von atothek (02-11-2004 um 10:23 Uhr) |
| | |
| | #7 (permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
Warum Nummern, wenn man gleich eine ganze Klasse nehmen kann ActionScript:
Der Vorteil ist, dass der Compiler Typsicherheit herstellt. Wg. des Konstruktors: Normalerweise halte ich meine Konstruktoren immer so einfach wie möglich. So wie du es jetzt gemacht hast, legt es eigentlich nahe, zwei verschiedene ManagerKlassen zu schreiben, eine für Single und eine für Multi und vielleicht eine gemeinsame Oberklasse und ein ManagerInterface. Ich habe mich dann aber gefragt, was es letzlich in der Anwendung bedeutet. Wenn mein Manager ein IManager ist, dann muesste ich für die erweiterten Eigenschaften meines Managers immer casten. Dann ist es so vielleicht doch so besser, also dass der Manager praktisch zwei Klassen in sich vereint. Trotzdem würde ich das Auswerten des Typs in eine extra Routine packen. mfg. r
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
| | #8 (permalink) |
| Flashaholic Registriert seit: Feb 2003 Ort: Berlin
Beiträge: 1.459
|
so hab mich nun dafür entschieden das Interface Selectable zu nennen was noch am passendsten ist. habe auch die Konstanten eingebaut. @bokel steh gerade auf dem schlauch und komm nicht ganz hinterher . hab den 2. download aktualisiert damit es nicht zu viel wird ^^ mfg alex
__________________ TVNEXT Solutions |
| | |
| | #9 (permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
Oh sorry, mit der Klasse SelectionType kannst du die Konstanten definieren. Dann kann dir nicht jemand eine falsche Nummer unterschieben. (Na ja, null und undefined würden immer noch durchgehen, so viel bringt es also nicht ) Im zweiten Absatz habe ich nur laut gedacht. Es scheint ja so zu sein, dass der SelectManager nur im Konstruktor initialisiert wird und dass der Typ dann nicht mehr geändert wird. Deshalb habe ich mich gefragt, was passiert wenn man gleich zwei verschiedene SelectManager definiert, einen für single- und einen für multi-select. mfg .r
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
| | #11 (permalink) |
| Neuer User Registriert seit: Sep 2001 Ort: Neckarsulm
Beiträge: 273
|
Wir haben darüber auf dem as2lib Weblog gepostet: :Object is Evil. Die Typprobleme treten beim Gebrauch von Interfaces auf, weil diese laut Compiler nicht vom Typ Object seien. |
| | |
| | #12 (permalink) |
| Flashaholic Registriert seit: Feb 2003 Ort: Berlin
Beiträge: 1.459
|
Is zwar schon etwas älter hatte aber ne kleine ergänzung gemacht und zwar CountableSelection fehlte noch ![]() mann kann angeben wieviele elemente wählbar sind. zudem ist das ganze nu in eine neue herachie gewandert und ne kleine Doc mit dabei probier mich gerade an as2api ![]() mfg alex
__________________ TVNEXT Solutions |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |