Inhalt | Abbildung | Source | SCWCD | |||
|< | < | > | >| | Generated by CoCoDiL |
Business Delegate gehört zwar offiziel zu der Geschäftslogikschicht, lebt aber in der Präsentationsschicht. Business Delegate vereinfacht die Schnittstelle zu der Geschäftslogik, und entkoppelt Präsentationsschicht und Geschäftslogikschicht.
Das BusinessDelegate Objekt ist eine Art Fassaden Objekt für die Geschäftslogikschicht. Diese Fassadenobjekt ist allerdings auf der Clientenseite.
Falls sich die API in der Geschäftslogik ändert, muss man in der obigen Abbildung Änderungen an Component1 und Component2 durchführen.
Mit einem Business Delegates Objekt muss bei Änderungen in der API der Geschäftslogik, Änderungen nur in im Business Delegates Objekt machen.
Verwende Business Delegate falls
Vorteile:
Trennt die Verantwortlichkeit beim Aufbau der Benutzungsoberflächen in die 3 unterschiedliche Rollen, um verschiedene Darstellungen derselben Information zu ermöglichen.
Verwende das MVC Pattern falls
Die Komponenten
Das Model ist für die darzustellenden Informationen zuständig. Es persistiert diese Information. Das Model ist unabhängig von den Controllern und den Views. Das Model informiert die Views falls sich die Daten geändert haben. Da das Model seine View i.a. nicht kennt, geschieht dies durch das Beobachter Pattern. Wichtig ist dass die View sehr wohl sein Model kennt, das Model aber nicht die Views.Dies ermöglicht dass mehrere Views auf dasselbe Model zugreifen. Es ist aber nicht möglich, dass eine einzige View mehrere Models hat.
Die View ist für die Darstellung der Informationen zuständig.
Der Controller nimmt die Eingabe des Anwenders entgegen, bearbeitet das Modell und sorgt für die Aktualisierung der Anzeige. Controller und View arbeiten sehr eng zusammen. I.a. gibt es zu einer View genau einen Controller. Es kommt in der Praxis selten vor, daß nur der Controller ausgetauscht wird. Eine sinnvolle Anwendung wäre z.B. von einem editierbaren in ein nicht editierbaren Modus zu wechseln. In der Praxis sind meist Controller und View nicht getrennt und bilden eine Einheit. Diese Trennung zwischen View und Controller ist auch nicht so wichtig, wie die Trennung des Models von der View.
Vorsicht Missverständnis
Was die Rolle des Controllers und View betrifft gibt es einige Missverständnisse in der Literatur. Manche sehen in dem Controller ein Bindeglied zwischen Model und View. Die eigentliche Verarbeitung der Interaktion wird in dieser Literatur der View zugesprochen. Die Aufgabe des Controllers wird dann fälschlicherweise mit der Instantiierung des Models, oder Zuordnung des Models zu einer View zu erstellen. Der grosse Unterschied zum klassischen MVC Pattern liegt dann darin, dass es einen einzigen Controller zu mehreren Views gibt. Im klassischen MVC Pattern hat jede View seinen eigenen Controller. Der Controller der fälschlicherweise in der Literatur unter dem MVC Pattern angegeben wird, ist aber eine andere Art von Controller.
Vorteile des MVC Pattern
Inhalt | Abbildung | Source | SCWCD | |||
|< | < | > | >| | Generated by CoCoDiL |