Einführung in die Programmierung für NF MI. Übung 11

Ähnliche Dokumente
Model-View-Controller

Javakurs für Fortgeschrittene

Model View Controller Pattern

Verhaltensmuster. Modellieren von komplexem Verhalten

Design Patterns 2. Model-View-Controller in der Praxis

Objektorientierte Analyse (OOA) OOA-Pattern

Einführung in die Programmierung für NF. Übung 08

Design Pattern Observer

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

Objektorientierte und Funktionale Programmierung SS 2014

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08

Dr. Monika Meiler. Inhalt

6. Objektorientiertes Design

Entwurfsmuster. Entwurfsmuster (Design Patterns), Visitor-, Singleton, Decorator-, Observer-Pattern. Objektterminierte Listen

Seite Architektur interaktiver Systeme. 7. Architektur interaktiver Systeme. 7.1 Entkopplung durch Sichten. Schichtenarchitektur

Das Model View Controller (MVC) Konzept

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

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

Software Engineering. 10. Entwurfsmuster II. Franz-Josef Elmer, Universität Basel, HS 2015

Softwaretechnik. M. Jakob. 15. März Gymnasium Pegnitz

Testklausur 2 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

Bekannte Lösungen für bekannte Probleme benutzen. Entwurf auf höherer Abstraktionsebene als bei Programmiersprachen

7. Architektur interaktiver Systeme

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

Observer-Pattern (Java vs..net vs. Qt) Seminar Software-Entwurf Tim Rademacher

Rails Ruby on Rails Ajax on Rails. Clemens H. Cap

Algorithmen und Datenstrukturen

Software Engineering Entwurfsmuster (update: 11.6.)

Softwaretechnik. Inhaltsverzeichnis. M. Jakob. 15. März Grundlagen der Projektorganisation

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Ein wichtiges Konzept der Software-Architektur

Besser PHP Programmieren mit Design Pattern. Model-View-Controller (MVC) Robert Westenkirchner. C O N T R O L L E R 1.

Chair of Software Engineering. Bezieher SUBSCRIBERS Ereignis Erzeuger (zb GUI) Chair of Software Engineering. Save_file ROUTINE

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Entwurfsprinzip. Entwurfsprinzip

Kapitel 10. Event Handling 10.1 MVC

Ereignisbehandlung 21

SE Besprechung. Übung 4 Architektur, Modulentwurf

DESIGN'PATTERN'2011. November. Abstract Factory & Factory Method BEARBEITET VON INHALT [1] Christoph Süsens

JOGGA Der Jogging-Companion

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

Remote Methode Invocation (RMI) ETIS SS05

Design Patterns. 5. Juni 2013

8 Design Patterns. Events

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller

Handbuch für die Erweiterbarkeit

Browserbasiertes, kollaboratives Whiteboard

Model-View-Controller

Design Patterns in der Softwareentwicklung

APPS für ios 10. professionell entwickeln. Apple Watch

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

Kapitel 6. Vererbung

Einführung in die Programmierung mit Java

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

2 Das Projekt Taschenrechner

AK Medientechnologien 05 Delegation

Java - Webapplikationen

Software-Architektur Design Patterns

Kapitel 1 Das Projekt Uhr (Observer-Muster, MVC-Muster) Seite 1

3 Objektorientierte Konzepte in Java

Specifying Patterns for Dynamic Pattern Instance Recognition with UML 2.0 Sequence Diagrams. Lothar Wendehals. Universität Paderborn

Quellcode-Repräsentation in Eclipse. Seminarvortrag PG Reclipse Jan Rieke

Wiederholung: Objektorientierte Oberflächen-Programmierung mit Java und Swing

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

Tobias Kühne Seite 1; Seminar Javabasierte Webtechnologien. Wikis

Vorlesung Software-Engineering I

Objektorientierte Analyse (OOA) Logischer Aufbau (statische Sicht)

Präsentation Interfaces

Naviki GPS-Anwendungsentwicklung für Mobiltelefone

Lösung zur Testklausur 2 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

2. Programmierung von Benutzungsschnittstellen

Einführung in die Informatik

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

CROSS PLATFORM DEVELOPMENT MIT PORTABLE CLASS LIBRARIES

Skalierbare Enterprise Architekturen für Universal Windows Platform Apps

Geschäftsprozesse Benutzerschnittstelle

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

GUI-Programmierung in Java

Übungen zur Softwaretechnik

Grundlagen von Python

Komponentenbasierter Taschenrechner mit CORBA

Behavioral Patterns. Seminar Software-Entwurf WS 04/05. Przemyslaw Dul

Multikanalfähigkeit von Softwaresystemen

Javakurs für Fortgeschrittene

Software-Projekt. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen

Erstellen von speziellen Ereignissen in C#

Implementierung III. Implementierung IV

Klassenbeziehungen & Vererbung

Entwurfsmuster (Design Pattern) ETIS SS05

OOD. [Objekt Orientiertes Design] Version 1.0. OSBS- OnlineShopBewertungsSystem

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

Stock Exchange. Nico Danneberg, Paul Führing, Martin Hammitzsch, Lars Lindner

2. GUI-Programmierung für mobile Geräte

Javakurs für Anfänger

3 Anwendungsarchitektur und Entwicklungsumgebung

3 Objektorientierte Konzepte in Java

Fragen Arthur Zaczek. Apr 2015

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design

Bundlemaker project. BundleMaker project state: initialized Parse

Programmierstil. Objektsammlungen. Konzepte. Zwischenspiel: Einige beliebte Fehler... Variablennamen Kommentare Layout Einrückung

Transkript:

Einführung in die Programmierung für NF MI Übung 11

Inhalt Design Patterns (Entwurfsmuster) MVC und Observer Pattern Einführung in die Programmierung für NF MI - Übung 11 2

Design Patterns A Design Pattern is a solution to a problem in a context Context Situation, in der das Pattern anwendbar ist Problem Ziele und Einschränkungen durch den Kontext Solution Das Ziel mit den Einschränkungen erreichen Einführung in die Programmierung für NF MI - Übung 11 3

Bestandteile eines Design Pattern Name Motivation Applicability Participants Structure Collaboration Consequences Related Patterns Einführung in die Programmierung für NF MI - Übung 11 4

Design Pattern Pattern legen meist nur grobe Richtlinien fest, die sich bewährt haben Die konkrete Umsetzung im konkreten Fall ist immer abweichend und individuell und kann von Fall zu Fall variieren Daher auch im Deutschen: Entwurfsmuster Einführung in die Programmierung für NF MI - Übung 11 5

Das MVC Pattern MVC = Model, View, Controller Problem: Benutzerschnittstellen Viele unterschiedliche Anforderungen: Layout, Benutzerführung Benutzerinteraktion, Eingabevalidierung Datenvisualisierung, Datenhaltung Anwendungslogik u.v.m. Einführung in die Programmierung für NF MI - Übung 11 6

Das MVC Pattern Aufteilung dieser Anforderungen in Model Anwendungslogik, Datenhaltung View Layout, Datenvisualisierung, Benutzerinteraktion Controller Vermittlung, Eingabevalidierung Ziel: Eine skalierbare und übersichtliche Programmstruktur Einführung in die Programmierung für NF MI - Übung 11 7

Das MVC Pattern - Nutzereingabe View 1. Benutzereingabe (5. Ansicht wechseln) Controller Model Einführung in die Programmierung für NF MI - Übung 11 8

Das MVC Pattern In kleinen Programmen wird oft auf den Controller verzichtet Dieser schafft hauptsächlich eine Austauschbarkeit mehrere Models oder Views Es bleibt die Problematik, wie die einzelnen Klassen aufeinander zugreifen Einführung in die Programmierung für NF MI - Übung 11 9

Das Observer Pattern Das Observer Pattern behandelt die Kommunikation zwischen zwei Objekten, wenn sich eines aufgrund des anderen ändern / anpassen muss Beispiel: Model und View Wenn eine View die Daten eines Models anzeigt, muss sie sich ändern, wenn sich die Daten ändern Einführung in die Programmierung für NF MI - Übung 11 10

Problem View 1 View 2 Model Einführung in die Programmierung für NF MI - Übung 11 11

Starre Lösung Model 1x modify() View 1 View 2 View 3 3x update() Einführung in die Programmierung für NF MI - Übung 11 12

Starre Lösung Probleme der starren Lösung: Das Model muss jede View kennen Hinzufügen oder Entfernen von Views erfordert jedes Mal eine Änderung am Model Jede View muss ihr Model kennen Die update()-methode kommt dreimal vor und muss in jeder View quasi identisch programmiert werden Einführung in die Programmierung für NF MI - Übung 11 13

Flexible Lösung Einführung von Observer und Observable Observer = Beobachter Observable = Beobachteter Das Model soll ein Beobachteter sein Jede View ist ein Beobachter Einführung in die Programmierung für NF MI - Übung 11 14

Flexible Lösung Realisierung in Java durch die Bibliotheksklasse Observable und das Interface Observer Model erbt von Observable class Model extends Observable View implementiert Observer class View implements Observer Einführung in die Programmierung für NF MI - Übung 11 15

Flexible Lösung Eine gemeinsame Methode Observable Observer update() Observer einfach hinzufügen, entfernen und benachrichtigen addobserver() deleteobserver() notifyobservers() View 1 View 2 Model modify() View 3 Einführung in die Programmierung für NF MI - Übung 11 16

Observer benachrichtigen Wenn sich im Observable etwas ändert werden folgende Methoden aufgerufen: setchanged(); notifyobservers(); Wenn notfiyobservers() aufgerufen wird, wird automatisch die update()-methode im Observer ausgeführt Einführung in die Programmierung für NF MI - Übung 11 17

Observer benachrichtigen Bei der Benachrichtigung können auch weitere Informationen an die update-methode übergeben werden Beispiele gibt es zum Download auf der Vorlesungshomepage und unter http://openbook.galileocomputing.de/javainsel/ javainsel_10_002.html Einführung in die Programmierung für NF MI - Übung 11 18

Kombination MVC und Observer Wenn das MVC Pattern vollständig umgesetzt wird, werden die Observer im Controller dem Observable hinzugefügt Der Controller erstellt also ein neues Model, eine neue View und fügt dem Model die View als Observer hinzu Wenn nun im Model die Observer benachrichtigt werden, wird in der View automatisch die update()-methode aufgerufen Einführung in die Programmierung für NF MI - Übung 11 19

Fragen zum Übungsblatt? Einführung in die Programmierung für NF MI - Übung 11 20