das ist wirklich ne super sache ! gerade was die wiederverwendung angeht. ein ordentlich gestricktes interface lässt sich doch wie components handhaben,oder? ich bastel mir diesmal ein flugzeug (wie originell :-). da ich weiss wie das interface aussieht, konstruiere ich immer mit blick auf meine schnittstellen. dann ziehe ich einfach die IGuidanceSystem-component aus der ascoders-lib und droppe sie auf mein flugzeug. fertig. schnell noch ne rechnung schreiben und ab an den see... :-) grüsse, jan ps: du kannst wirklich gut erklären -----Ursprüngliche Nachricht----- Von: Ralf Siegel [mailto:ralf@xxxxxxxxxxx] Gesendet: Montag, 14. Juli 2003 12:17 An: ascoders@xxxxxxxxxxxxx Betreff: [ascoders] Re: AW: Interfaces & implements >sieht interessant aus, ist aber (für mich) eher ne wochenendlektüre >;-)... deshalb hab ich den Link auch schnell noch Sonntag abend losgeschickt ;o) >es geht um interface patterns oder was? ja, auch. Ein Adapter oder eine Facade verändern z.B. so eine Schnittstelle und werden deshalb oft als 'Interface Patterns' schub-la-duiert. Es geht aber eher um die Definition und vor allem um die Einhaltung dieser definierten Schnittstelle von allen Beteiligten (ala Steckdosen-Hersteller <-> Geräte-Hersteller). In dem Beispiel mit dem Auto sagt dir etwa dein Kollege: "Jan, du baust jetzt ein Auto in ActionScript. Wie du das machst ist mir völlig schnurz, Hauptsache ich kann später mit der Joystick-Steuerung Gas geben, bremsen und lenken." Dann setzt ihr euch hin und überlegt euch so eine Schnittstelle: ________________________________________________________ _global.IGuidanceSystem = function() { }; IGuidanceSystem.prototype.speedUp = function() {}; IGuidanceSystem.prototype.slowDown = function() {}; IGuidanceSystem.prototype.turnRight = function() {}; IGuidanceSystem.prototype.turnLeft = function() {}; ________________________________________________________ Dein Kollege bastelt daraufhin die Joystick-Steuerung, ruft 'blind' obige Methoden auf und kann sich darauf verlassen, dass die Kutsche am Ende auch fährt, weil du die Methoden oben genau so implementiert hast, wie abgemacht. Damit du in der Hektik auch die Bremse nicht vergisst, erinnert dich die 'implements' Methode daran, dass du noch nicht nach Hause gehen darfst ;o) Car.implements(IGuidanceSystem); Und was noch viel besser ist: Man kann die Dinge jederzeit um diese Schnittstelle herum austauschen -> Stichwort: Wiederverwendung. Dein Kollege geht etwa eine Woche später zu Lola und sagt: "Lola, wir sollen bis morgen früh ein 'Lola rennt' Spiel für *piep* machen - meine Joystick-Steuerung funktioniert wie geschmiert und hat obige Schnittstelle. Auf geht's." Runner.implements(IGuidanceSystem); Schöne Woche :o) ralf ... ------------------------------------------------------ Archiv : //www.freelists.org/archives/ascoders/ Optionen : //www.freelists.org/list/ascoders ------------------------------------------------------ ------------------------------------------------------ Archiv : //www.freelists.org/archives/ascoders/ Optionen : //www.freelists.org/list/ascoders ------------------------------------------------------