Model View Controller Pattern

Ähnliche Dokumente
Design Patterns 2. Model-View-Controller in der Praxis

Model-View-ViewModel (MVVM)

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Artenkataster. Hinweise zur Datenbereitstellung. Freie und Hansestadt Hamburg. IT Solutions GmbH. V e r s i o n

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

Ein mobiler Electronic Program Guide

8 Design Patterns. Events

Objektorientiertes Software-Engineering

Einfaches, integriertes Projektmanagement mit Standard-Tools effizient planen und umsetzen

Integration verteilter Datenquellen in GIS-Datenbanken

IMS - Learning Design

Software- und Druckerzuweisung Selbstlernmaterialien

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Muster. Selbstverantwortliches Lernen. für. Eine Mustersprache für die Waldorfpädagogik?

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Windows Explorer Das unbekannte Tool. Compi-Treff vom 19. September 2014 Thomas Sigg

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

GOtoSPORT.CH Internetplattform

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Installation LehrerConsole (für Version 6.2)

Design Patterns MVC. Marcus Köhler Markus Merath Axel Reusch. Design Patterns MVC Marcus Köhler Markus Merath Axel Reusch Seite 1

Aktualisierung des Internet-Browsers

WinWerk. Prozess 6a Rabatt gemäss Vorjahresverbrauch. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

(C)opyright 2009 by Jochen Vajda

Anleitung über den Umgang mit Schildern

Eine Anwendung mit InstantRails 1.7

Plümper, Thomas, 2003, Effizient Schreiben, München, Oldenbourg,

Wir machen neue Politik für Baden-Württemberg

Einzelkurs-Auswertung Microsoft Office Excel 2010 Aufbauseminar

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

GPS Garmin MapSource - Track erstellen und nutzen

Software Defined Networking. und seine Anwendbarkeit für die Steuerung von Videodaten im Internet

KMU-verträgliche Umsetzung eines integrierten Qualitäts- und Umweltmanagementsystems

FlowFact Aus Platin CRM wird Performer CRM

Einleitung: Frontend Backend

Spezifikation für Coaching Funktion in OpenOLAT

BIF/SWE - Übungsbeispiel

Ein mobiler Electronic Program Guide für Android

1/1. Die Struktur. 12. Integrierte Mediation

MOC Entwicklung von ASP.NET MVC 4 Webapplikationen

Jederzeit Ordnung halten

Integrierte Dienstleistungen regionaler Netzwerke für Lebenslanges Lernen zur Vertiefung des Programms. Lernende Regionen Förderung von Netzwerken

40x wissensch. Lehrerin / wissensch. Lehrer. 2. Mit dem Thema digitales Whiteboard als Unterrichtsmittel habe ich mich bereits beschäftigt.

Workshop. Zeitmanagement Hamburg, 24. November 2004

Projekt- Management. Landesverband der Mütterzentren NRW. oder warum Horst bei uns Helga heißt

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Outlook Web App Kurzanleitung. Zürich, 09. Februar Eine Dienstabteilung des Finanzdepartements

Benötigen wir einen Certified Maintainer?

myfactory.businessworld und myfactory.com...2

Die richtigen Partner finden, Ressourcen finden und zusammenführen

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Organisationsentwicklung Outdoor Seminare Teamentwicklung

Schulung FRBR Functional Requirements for Bibliographic Records. Modul E: Der FRBRisierte Katalog oder Was bringt uns FRBR?

Was bedeutet Inklusion für Geschwisterkinder? Ein Meinungsbild. Irene von Drigalski Geschäftsführerin Novartis Stiftung FamilienBande.

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Word 2010 Schnellbausteine

Liebe Interessierte an technischen Lösungen für die Sicherheit zu Hause,

2. Psychologische Fragen. Nicht genannt.

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Installation, Einrichtung, Nutzung von PHOCA DOWNLOAD. Download-Links... 2

Datenbanken Microsoft Access 2010

Qualitätsmanagement an beruflichen Schulen in Deutschland: Stand der Implementierung. Diplomarbeit

Migration von statischen HTML Seiten

Übungen zur Softwaretechnik

Software Engineering. 3. Anforderungsanalyse. Franz-Josef Elmer, Universität Basel, WS 2006/07

Jeder ist ein Teil vom Ganzen Inklusion ändert den Blick

Außerdem verwenden wir Cookies für andere Zwecke, wie zum Beispiel:

1: 9. Hamburger Gründerpreis - Kategorie Existenzgründer :00 Uhr

Gambio GX2 FAQ. Inhaltsverzeichnis

Erfahrungen mit Hartz IV- Empfängern

Handout Relaunch globetrotter.de

Grundlagen Software Engineering

Prüfungen der Industrie- und Handelskammern. Michael Assenmacher DIHK Expertenworkshop der AGBFN Forum 1: Prüfungsformen und -reformen

Betriebliche Gestaltungsfelder

Drucken, GUI, Design Pattern,... PDF, Usability, Observer Pattern, MVC

Handbuch ECDL 2003 Professional Modul 3: Kommunikation Kalender freigeben und andere Kalender aufrufen

Auswertung JAM! Fragebogen: Deine Meinung ist uns wichtig!

Erstellung von Reports mit Anwender-Dokumentation und System-Dokumentation in der ArtemiS SUITE (ab Version 5.0)

Dokumentenverwaltung im Internet

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services

Webalizer HOWTO. Stand:

Inhalt. Fragestellungen. ...we make the invisible visible... Analysen und deren Anwendung Erfahrungen

Tutorial about how to use USBView.exe and Connection Optimization for VNWA.

BSV Ludwigsburg Erstellung einer neuen Internetseite

Herzlich Willkommen. Handeln statt abwarten, aber wie? Wie beginne ich ein DMS Projekt. Hans Lemke. Agenda das digitale Dokument März 2015

NT ME GEBÄUDEMANAGE Stadt Remscheid

WICHTIGER HINWEIS: Bitte fertigen Sie keine Kopien dieses Fragebogens an!

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

AW: AW: AW: AW: Kooperationsanfrage anwalt.de

Von Windows-Forms zu WPF mit Expression Blend? Thomas Müller conplement AG Nürnberg

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Senioren ans Netz. schreiben kurze Texte. Lektion 9 in Themen aktuell 2, nach Übung 7

Bernadette Büsgen HR-Consulting

Webshop Neuerungen von Version 6.14 zu

SQL - Übungen Bearbeitung der Datenbank Personal (1)

Coach me if you can! Iris Brockob & Frank Hoffmann Partnerschaft für Beratung, Training & Gestaltung

Vermittler (Mediator) Sabine Müller - Sven Richter - Jens Wagenbreth 03IN2-P-D

Dokumentation Schedulingverfahren

Transkript:

Christian Vogt HAW Hamburg 19. Dezember 2011

Inhaltsverzeichnis 1 Prolog Einleitung Entwurfsmuster andere Muster 2 Model-View-Controller Hintergrund Konzept Umsetzung 3 Beispiele Überblick Beispiel in Java Beispiel in Swing 4 Alternativen zu MVC Beispiele 5 Fazit

Einleitung Was soll euch dieser Vortrag vermitteln? Fragestellung Was ist das MVC-Pattern? Warum/Wofür gibt es das Pattern? Wie wird es umgesetzt? Gibt es Alternativen? Wo kann ich mich weiter informieren?

Entwurfsmuster Was kennzeichnet ein Entwurfsmuster? [frei nach wikipedia.de] ein begrenztes Problem lösen ein erprobtes Konzept bieten auf realen Designs basieren über das rein Offensichtliche hinausgehen den Benutzer in den Entwurfsprozess einbinden Beziehungen aufzeigen, die tiefergehende Strukturen und Mechanismen eines Systems umfassen.

andere Muster Was gibt es noch? Gang of Four Die meisten Entwurfsmuster sind 1994 von der Gang of Four definiert worden andere Musterarten Beispiele für Muster, welche keine Entwurfsmuster sind Analysemuster Idiome Kommunikationsmuster Organisationsmuster Antimuster Architekturmuster

andere Muster Was kennzeichnet ein Architekturmuster? Entwurfsmuster beschreiben die Lösung eines lokalen Problems Architekturmuster beschreiben eine Grundstruktur Entwurfsmuster sind im Kleinen das, was Architekturmuster im Großen sind Architekturmuster ziehen sich durch die ganze Anwendung

andere Muster Kategorien von Architekturmustern[wikipedia.de] Chaos zu Struktur (engl. Mud-to-structure) Verteilte Systeme Interaktive Systeme Adaptive Systeme

andere Muster Kategorien und Beispiele von Architekturmustern Chaos zu Struktur (engl. Mud-to-structure) Pipes und Filter Schichtenarchitektur Domain-Driven Design Data Context Interaction Verteilte Systeme Serviceorientierte Architektur Broker bzw. Vermittler Client-Server Interaktive Systeme Model-View-Controller (MVC) Presentation-Abstraction-Control (PAC) Adaptive Systeme Mikrokernel Reflexion Dependency Injection [Michael Kircher, Prashant Jain: Pattern-Oriented Software Architecture. Patterns for Resource Management.

Hintergrund Was genau ist das MVC-Pattern? Eine allgemeine Konzeptidee für Benutzeroberflächen.

Hintergrund Konzept stammt von Trygve Reenskaug (Xerox), 1979 Erste Umsetzung für Benutzeroberflächen in Smalltalk-80

Konzept Strukturierung Aufteilung von Software in die drei Einheiten: Datenmodell (engl. model) Zustand Präsentation (engl. view) Anzeige Programmsteuerung (engl. controller) Verhalten

Konzept Konzeptdiagramm durchgezogen: direkte Assoziation gestrichelt: indirekte Assoziation (z.b. über Observer)

Konzept Komponente: Modell (model) Kennt den Zustand des Systems Gibt Informationen zurück (meist an den View) Reagiert auf Änderungen (meist ausgelöst von Controllern) In Event-basierten Systemen übernimmt das Model die Rolle des Oberservable (mit den Views als Observer)

Konzept Komponente: Präsentation (view) Enthält die Anzeigeelemente Es kann viele Views geben, die ein gemeinsames Model verwenden z.b. ein Formularfeld

Konzept Komponente: Steuerung (controller) Erhält Usereingaben und initiiert eine Antwort, in dem das Model aufgerufen wird z.b. eine Formulareingabe, die an das Model weitergereicht wird Es kann viele Views geben, die einen gemeinsamen Controller verwenden

Konzept Warum/Wofür gibt es das Pattern? Mit steigender Komplexität von Benutzeroberflächen wurde ein Konzept unabdingbar Ziel des Musters ist ein flexibler Programmentwurf, der eine spätere Änderung oder Erweiterung erleichtert und eine Wiederverwendbarkeit der einzelnen Komponenten ermöglicht.[wikipedia.de]

Umsetzung Wie wird es umgesetzt? (... )

Umsetzung Kontrollfluß 1 Ein Benutzer interagiert mit einer grafischen Oberfläche 2 Ein Controller reagiert auf den Benutzer mit Hilfe eines generierten Events (z.b. Mausklick) und führt eine entsprechende Aktion aus 3 Der Controller benachrichtigt das Model über die Aktion, was zu einer Änderung in diesem führen kann 4 Der View aktualisiert seine Anzeige 5 Der View wartet auf weitere Benutzereingaben (zurück zu 1)

Umsetzung Kontrollfluß 1 Ein Benutzer interagiert mit einer grafischen Oberfläche 2 Ein Controller reagiert auf den Benutzer mit Hilfe eines generierten Events und führt eine entsprechende Aktion aus 3 Der Controller benachrichtigt das Model über die Aktion, was zu einer Änderung in diesem führen kann 4 Der View aktualisiert seine Anzeige 5 Der View wartet auf weitere Benutzereingaben zurück zu 1 Beispiel 1 Ein Artikel wird über einen Button in den Warenkorb gelegt 2 Im Controller wird der Event-Handler addtoshoppingcart() aufgerufen. 3 Im Model wird dem Warenkorb ein Artikel hinzugefügt. 4 Die Anzeige wird aktualisiert und der neu hinzugefügte Artikel wird angezeigt 5 Warten.

Umsetzung Unterschiedliche Implementierungen Durch unterschiedliche Implementierungsvarianten gibt es nicht definierte Funktionalitäten Beispiel: Formularvalidierung In der View oder im Model? Je nach Anwendungsfall!

Umsetzung Unterschiedliche Implementierungen Durch unterschiedliche Implementierungsvarianten gibt es nicht definierte Funktionalitäten Beispiel: Datenaktualisierung des View Observer-Pattern zur Aktualisierung der Anzeige HTML Request-Response-Cycle

Umsetzung Oft verwendete Begrifflichkeiten Fat Model, Skinny Controller Fat Controller - AntiPattern Fat View

Überblick 1 Einfaches Beispiel in Java 2 Verwendung in Java Swing

Beispiel in Java Einfaches Beispiel in Java Eclipse-Projekt MVC-Easy

Beispiel in Swing Umsetzung in Swing später!

Gibt es Alternativen? Ja!

Beispiele Ausbildungen des MVC-Pattern Model-View-Presenter Model-View-ViewModel (Microsoft WPF) Model-ViewController (Swing)

Beispiele MVC mit Fokus auf Testbarkeit: Model-View-Presenter Motivation Tests von Oberflächen sind schwierig Komplizierte Automatisierung Grundgedanke des MVP-Patterns Die eigentliche Darstellung (den View) komplett von technischer und fachlicher Logik freihalten[praxisbuch Objektorientierung - Galileo]

Beispiele MVC mit Fokus auf Testbarkeit: Model-View-Presenter Umsetzung Passive View -Ansatz View von jeglicher Logik freihalten Keine Kommunikation zwischen View und Model Presenter kennt nur ein View-Interface View-Interface kann von einem Mock -Objekt implementiert werden UI-Logik lässt sich Testen

Beispiele MVC von Microsoft: Model-View-ViewModel Umsetzung Ähnelt stark MVP Das ViewModel kennt keinerlei View-Komponenten wird in Windows Presentation Forms verwendet

Beispiele Vereinfachtes MVC: Model-ViewController Prinzip Controller erledigen oft sehr gleichförmige Aufgaben View und Controller werden zu einem UI-Element zusammengefasst Verwendung in Java Swing Beispiel folgt

Beispiele Vereinfachtes MVC: Model-ViewController Java Swing Beispiel Eclipse-Projekt MVC-Swing

Fazit Eine Separierung nach dem Prinzip des MVC oder einem abgeleiteten Pattern ist grundsätzlich sinnvoll MVC ist kein Allheilmittel, sondern nur ein Ansatz zur Problemlösung Das Problem an sich muss selbst gelöst werden

Wo kann ich mich weiter informieren? Quellen für diesen Vortrag Swing: Java ist auch eine Insel, http://java.sun.com/products/jfc/tsc/articles/architecture/ WPF: http://msdn.microsoft.com/de-de/magazine/cc785479.aspx MVP: http://www.wildcrest.com/potel/portfolio/mvp.pdf, http://openbook.galileocomputing.de/oo

Vielen Dank für die Aufmerksamkeit!