| |||||||
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) |
| T-Noblesse Registriert seit: Jun 2006 Ort: München
Beiträge: 308
| MVC, Interfaces und abstrakte Klassen
Hallo, ich schlage mich gerade mit pattern herum und es tun sich ein paar Fragen auf. Konkret beim MVC: Bei einigen Beispielen im Web (und auch in Moock's essential AS2) werden die Model-, View-, und Controller-Klassen jeweils von abstrakte Klassen abgeleitet. Diese abstrakten Klassen implementieren jeweils wieder ein Interface. Der Sinn eines Interfaces liegt doch darin, dass Klassen, die dieses Interface implementieren gezwungen werden, die entsprechenden Funktionen zu beinhalten. Durch eine abstrakte Klasse "zwischen" Interface und der von der abstraken Klasse abgeleiteten Klasse geht doch diese Sicherheit verloren? Ich bin ja nicht gezwungen, die entsprechenden Methoden der Mutterklasse zu überschreiben? Wo liegt da der Sinn? Zweite Frage: Ist es besser (performanter?), die View beim Model als Event-Listener zu registrieren, oder wie in AS2 die update-Methode direkt vom Model aus aufzurufen? Danke und Gruß, sobo |
| | |
| | #2 (permalink) |
| Flashworker Registriert seit: Nov 2001 Ort: Wiesbaden
Beiträge: 10.945
|
Hi, also in der Tat hast du in AS das Problem, dass es keine richtig abstrakten Klassen und Methoden gibt. In AS3 schreibt man dann meistens einen Runtime Fehler rein um das Überschreiben zu erzwingen. Aber konkret zu MVC bei Moocks AS2 Buch: Ist vom Grundprinzip zwar sicher ganz okay, aber auch nicht das Musterbeispiel schlechthin. Schau dir vielleicht noch ein paar andere an. Und es ist in jedem Fall besser, wenn die Views sich beim Model anmelden. Alleine schon weil das Model die Views nicht zu kennen hat und du deine Applikation problemlos um Views erweitern kannst ohne ans Model ran zu müssen. gruß Geändert von sebastian (09-08-2008 um 09:02 Uhr) |
| | |
| | #4 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Was ich seit kurzem als "Ersatz" für abstrakte Klassen verwende ist eine Hirarchie von Interfaces: Angenommen, ich hab ein Interface IInterface mit einigen Methoden, von denen einige schon in einer abstrakten Klasse implementiert werden können, dann teile ich das Interface auf in IInterfaceBase (mit den Methoden für die "abstrakte" Klasse und IInterface mit dem Rest. Die Vererbungsstruktur sieht dann letzten Endes so aus: PHP-Code: Einziger Nachteil ist, wenn ich in den implementierten Methoden in der "abstrakten" Klasse Methoden aus IInterface aufrufen möchte, dann muss ich this nach IInterface upcasten.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #5 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.147
|
So verfahre ich auch.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |