Entwurfsmuster, Klassenbibliotheken und Frameworks unterscheiden können. Wichtige Entwurfsmuster kennen und erklären können, wo sie eingesetzt werden

Größe: px
Ab Seite anzeigen:

Download "Entwurfsmuster, Klassenbibliotheken und Frameworks unterscheiden können. Wichtige Entwurfsmuster kennen und erklären können, wo sie eingesetzt werden"

Transkript

1 Grundlagen der Softwaretechnik 7 Entwurfsmuster und Frameworks Lernziele Entwurfsmuster, Klassenbibliotheken und Frameworks unterscheiden können Wichtige Entwurfsmuster kennen und erklären können, wo sie eingesetzt werden Entwurfsmuster bei der Modellierung einsetzen können Entwurfsmuster in einem OOD-Modell erkennen können 416

2 7.1 Entwurfsmuster, Frameworks, Klassenbibliotheken 7 Entwurfsmuster und Frameworks 7.1 Entwurfsmuster, Klassenbibliotheken, Frameworks 7.2 Fabrikmethode-Muster 7.3 Singleton-Muster 7.4 Beobachter-Muster 7.5 Anwendungsbeispiel 7.6 Zusammenfassung 417

3 7.1 Entwurfsmuster, Klassenbibliotheken, Frameworks Definition Entwurfsmuster (Design Pattern) Ein Entwurfsmuster gibt eine bewährte generische Lösung für ein immer wiederkehrendes Entwurfsproblem, das in einem bestimmten Kontext auftritt Entwurfsmuster ermöglichen Wiederverwendung von erfolgreichen Entwürfen und Architekturen Wiederverwendung von Design! Beschreibung eines Entwurfsmusters Name des Musters Muster- Essenz in ein bis zwei Worten Problembeschreibung Wann ist das Muster anwendbar? Lösungsbeschreibung Abstrakte Lösung Konsequenzen Für Evaluierung von Entwurfsalternativen 418

4 7.1 Entwurfsmuster, Frameworks, Klassenbibliotheken Klassifikation von Mustern Erzeugungsmuster (creational patterns) Helfen, ein System unabhängig davon zu machen, wie seine Objekte erzeugt, zusammengesetzt und repräsentiert werden Strukturmuster (structural patterns) Befassen sich mit der Zusammensetzung von Klassen und Objekten zu größeren Strukturen Verhaltensmuster (behavioral pattern) Befassen sich mit der Interaktion zwischen Objekten und Klassen Beschreiben komplexe Kontrollflüsse, die zur Laufzeit schwer nachvollziehbar sind Hinweis: Elementares Buch zum Thema Entwurfsmuster (Design Pattern) Gamma, Erich et al.: Design Patterns: Elements of Reusable Object-Oriented Software Addison-Wesley Verlag, Reading MA,

5 7.1 Entwurfsmuster, Frameworks, Klassenbibliotheken Definition Klassenbibliothek Organisierte Sammlung von Klassen, aus der ein Entwickler nach Bedarf einzelne Klassen verwendet Mögliche Topologien von Klassenbibliotheken: Baum-Topologie Gemeinsame Wurzelklasse Wald-Topologie Bibliothek besteht aus mehreren Baumhierarchien Vorteil: Flachere Vererbungshierarchie im Vergleich zur Baum- Topologie Baustein-Topologie Unabhängige Klassen Verwendung des Konzepts der generischen Klasse zur spezifischen Anpassung Wiederverwendung von Implementierungscode! 420

6 7.1 Entwurfsmuster, Frameworks, Klassenbibliotheken Klassenbibliotheken im Überblick Basis- Funktionalität Grafik Anwendungsgebiete Benutzungsoberfläche Datenbankzugriff Interprozesskommunikation Spezifische Funktionalität z.b. String, Map, Queue, Vector z.b. Window, Menu, Button z.b. Diagram, Table z.b. DBQuery, DBResult z.b. MsgHeader, NameService z.b. FifoQueue, LiftControl 421

7 7.1 Entwurfsmuster, Frameworks, Klassenbibliotheken Definition Framework Menge von kooperierenden Klassen, die einen wiederverwendbaren Entwurf für einen bestimmten Anwendungsbereich implementieren Wiederverwendung von Architektur + Code Besteht aus konkreten und abstrakten Klassen (Schnittstellen), die in einer Programmiersprache implementiert sind Direkte Ausführung ist häufig möglich (Default-Anwendung) Frameworks sind immer auf spezifische Anwendungsbereiche ausgelegt. Beispiele: Erstellung grafischer Editoren Erstellung von Steuerungen Anwendungsentwicklung mit Frameworks durch Parametrisierung und Ableitung von Schnittstellen Anwendungsentwickler kann sich um spezifische Aspekte seiner Anwendung kümmern 422

8 7.1 Entwurfsmuster, Frameworks, Klassenbibliotheken Merkmale von Frameworks Frameworks ermöglichen einen besonders hohen Grad an Wiederverwendung hohe Produktivitäts- und Qualitätssteigerung Wettbewerbsvorteile Inversion des Kontrollflusses zur Laufzeit (sog. Hollywood-Prinzip: Don t call me, I ll call you ): Anwendungscode Framework Aufruf Aufruf Aufruf Aufruf Bibliothek 423

9 7.1 Entwurfsmuster, Frameworks, Klassenbibliotheken Unterschiede zwischen Entwurfsmuster und Framework Entwurfsmuster sind abstrakter als Frameworks Werden nur beispielhaft durch Programmcode repräsentiert Anwendung von Entwurfsmustern ist mit einer neuen Implementierung verbunden Entwurfsmuster sind kleiner als Frameworks Ein typisches Framework enthält mehrere Entwurfsmuster Entwurfsmuster sind weniger spezialisiert als Frameworks Häufig keine Beschränkung auf einen bestimmten Anwendungsbereich Eigenständige Wiederverwendungskonzepte Aber wertvolle Synergieeffekte! 424

10 7 Entwurfsmuster und Frameworks Frage zu 7.1 Nennen Sie die Gemeinsamkeiten und Unterschiede zwischen Mustern, Frameworks und Bibliotheken. Antwort Gemeinsamkeiten Unterstützung der Wiederverwendung Standardisierung von Software Unterschiede Abstrakteste Form, kein Code Software-Architektur für bestimmte Anwendungsbereiche Relativ unabhängige Sammlung von Einheiten zur direkten Verwendung Muster Frameworks Bibliotheken Frameworks basieren meistens auf Mustern und Bibliotheken 425

11 7.2 Fabrikmethode-Muster 7 Entwurfsmuster und Frameworks 7.1 Entwurfsmuster, Klassenbibliotheken, Frameworks 7.2 Fabrikmethode-Muster 7.3 Singleton-Muster 7.4 Beobachter-Muster 7.5 Anwendungsbeispiel 7.6 Zusammenfassung 426

12 7.2 Fabrikmethode-Muster Fabrikmethode Motivation: Problem: Verwendung eines Frameworks für eine Anwendung, die mehrere Dokumente gleichzeitig anzeigen kann Verwendung der beiden abstrakten Klassen Application und Document und Modellierung einer Assoziation zwischen ihren Objekten Klasse Application ist für die Erzeugung neuer Dokumente zuständig Softwarekonstrukteur leitet von diesen beiden Klassen seine anwendungsspezifischen Klassen ab Erzeugung eines neuen Objekts von MyDocument aus der Klasse MyApplication Framework muss Objekte erzeugen, kennt aber nur die abstrakte Oberklasse, von der es keine Objekte erzeugen darf 427

13 7.2 Fabrikmethode-Muster Fabrikmethode Lösung: Unterklassen von Application überschreiben die abstrakte Operation createdocument() Exemplar von MyDocument wird zurückgegeben Nach der Erzeugung eines Objekts von MyApplication kann diese spezifische Dokumente erzeugen, ohne deren exakte Klasse zu kennen createdocument() heißt Document open() close() save() revert() docs * Application createdocument() newdocument() opendocument() Fabrikmethode Document doc = createdocument(); docs.add(doc); doc.open(): MyDocument <<creates>> Myapplication createdocument() return new MyDocument; 428

14 7.2 Fabrikmethode-Muster Fabrikmethode - das Prinzip Methodenaufruf Konstruktoraufruf Programm-stück (benötigt Objekt) Zwischenschicht (Fabrik) Implementierte Klasse Bisher: Schnittstelle meinobjekt = new ImplementierteKlasse() mit Fabrikmethode: meinobjekt = Fabrik.Fabrikmethode() 429

15 7.2 Fabrikmethode-Muster Fabrikmethode Anwendbarkeit: Eine Klasse kann oder darf die zu erzeugenden Objekte nicht im Voraus kennen Unterklassen sollen festlegen, wie Objekte erzeugt werden Struktur (klassenbasiertes Erzeugungsmuster) Creator Product factorymethod() anoperation()... product = factorymethod();... ConcreteProduct <<creates>> ConcreteCreator factorymethod() return new ConcreteProduct 430

16 7.3 Singleton-Muster 7 Entwurfsmuster und Frameworks 7.1 Entwurfsmuster, Klassenbibliotheken, Frameworks 7.2 Fabrikmethode-Muster 7.3 Singleton-Muster 7.4 Beobachter-Muster 7.5 Anwendungsbeispiel 7.6 Zusammenfassung 431

17 7.3 Singleton-Muster Singleton Motivation: Bei manchen Klassen soll genau ein Objekt existieren Bsp.: Datenbank, Druckerspooler Einfacher Zugriff auf dieses Einzel -Objekt durch andere Objekte Struktur (Objektbasiertes Erzeugungsmuster) Singleton uniquelnstance singletondata instance() singletonoperation() getsingletondata() return uniqueinstance 432

18 7.3 Singleton-Muster Singleton Implementierung: Erzeugung von Instanzen (mit new()) soll verhindert werden class Singleton { } private static Singleton uniqueinstance = new Singleton(); private int singletondata; private Singleton() {} public static Singleton instance() { return uniqueinstance; } public int getvalue() { return singletondata; } public void setvalue(int x) {singletondata = x; } Verwendung Singleton s = Singleton.instance(); Nicht möglich: Singleton s = new Singleton(); Verhindert Default- Konstruktor! 433

19 7.3 Singleton-Muster Singleton Anwendbarkeit: Es soll genau ein Objekt einer Klasse geben und ein einfacher Zugriff darauf bestehen Das einzige Exemplar wird durch Spezialisierung mittels Unterklassen erweitert und Klienten können das erweiterte Exemplar verwenden, ohne ihren Code zu ändern Konsequenzen: Singleton-Muster vs. statische Methoden Flexiblere Lösung als statische Methoden Erweiterbarkeit auf n Instanzen Erweiterung auf mehrere Instanzen kann leicht auf (höchstens) n Instanzen erweitert werden instance() Methode kann parametrisiert werden, damit verschiedene Instanzen abgefragt werden können 434

20 7.4 Beobachter-Muster 7 Entwurfsmuster und Frameworks 7.1 Entwurfsmuster, Klassenbibliotheken, Frameworks 7.2 Fabrikmethode-Muster 7.3 Singleton-Muster 7.4 Beobachter-Muster 7.5 Anwendungsbeispiel 7.6 Zusammenfassung 435

21 7.4 Beobachter-Muster Beobachter Motivation: Objekt enthält Anwendungsdaten Darstellung dieser Daten auf verschiedene Arten Kreisdiagramme sollen sich ändern, wenn die Daten in der Tabelle verändert werden und umgekehrt 436

22 7.4 Beobachter-Muster Beobachter Struktur Abstrakte Klasse Subject kennt alle ihre Beobachter (Observer) und informiert sie über alle Änderungen Abstrakte Klasse Observer definiert die Schnittstelle für alle konkreten Observer, d.h. für alle Objekte, die über Änderungen eines Subjects informiert werden müssen. Beobachter kennen sich untereinander nicht Synchronisation jedes Beobachters mit dem Zustand des Subject Subject attach(observer) detach(observer) notify() for all o in observers {o.update()} observers * Observer update() Concrete Observer Concrete Subject subject 1 observerstate subjectstate getstate() setstate() return subjectstate update() observerstate= subject.getstate() 437

23 7.4 Beobachter-Muster Beobachter - Interaktionen des Musters :ConcreteSubject Observer 1 Observer 2 attach(self) attach(self) setstate() notify() update(self) getstate() getstate() update(self) Konsequenzen Das Beobachter-Muster ermöglicht es, Subjekte und Beobachter unabhängig voneinander zu modifizieren Beobachter und Subjekte können einzeln wiederverwendet werden Neue Beobachter sind ohne Änderung des Subjekts hinzufügbar 438

24 7.5 Anwendungsbeispiel 7 Entwurfsmuster und Frameworks 7.1 Entwurfsmuster, Klassenbibliotheken, Frameworks 7.2 Fabrikmethode-Muster 7.3 Singleton-Muster 7.4 Beobachter-Muster 7.5 Anwendungsbeispiel 7.6 Zusammenfassung 439

25 7.5 Anwendungsbeispiel Hintergrund: Oberflächen-Programmierung in Java Oberflächen bestehen aus verschiedenen Anzeige-Objekten Fenster Buttons Scrollbars Menüs Listen Auswahlboxen Java stellt für die Oberflächen-Programmierung die Java Foundation Classes (JFC) zur Verfügung, die aus mehreren Bibliotheken bestehen Java Swing Bibliothek API zur Erstellung leistungsfähiger und komplexer grafischer Benutzeroberflächen (GUI) Alle Swing-Klassen beginnen mit dem Großbuchstaben J Alle Komponenten sind in Java geschrieben (lightweight components) 440

26 7.5 Anwendungsbeispiel Ereignisbehandlung mit SWING Damit in den Programmen auch auf Aktionen des Benutzers reagiert werden kann, existieren Abhörerklassen Benutzeraktivitäten lösen Ereignisse aus, die vom GUI-System an das jeweilige Programm weitergegeben werden Vorteile Ereignisse werden durch Anzeige-Objekte erzeugt und weitergeleitet Ereignisquellen Beispiel: Button, der angeklickt wird, Tastatureingabe, Mausbewegung GUI-Programme warten auf Ereignisse (events) Trennung von Oberfläche und Ereignisbehandlung (Listener-Klassen für bestimmte Arten von Ereignissen) bessere Objektorientierung (Ereigniscode für eine spezielle Klasse von Ereignissen ist vererbbar und an jede Oberfläche "montierbar") schnell, flexibel, übersichtlich Anwendung des Beobachtermusters 441

27 7.5 Anwendungsbeispiel Prinzip der Ereignisbehandlung Anzeige-Objekte sind Ereignisquellen Beispiel: Fenster Button, Tastatur, Scrollbar Control-Objekte sind Beobachter / Abhörer (Event-Listener) Benötigen Informationen über Benutzeraktionen Event-Listener Schnittstellen Event-Listener reagieren auf Ereignisse an den Quellen (z.b. ActionListener für Button-Ereignisse) Schnittstelle definiert Operationen, die von Anzeige-Objekten aufgerufen werden, wenn ein bestimmtes Ereignis eintritt Event-Listener müssen für jedes Ereignis, auf das reagiert werden soll, implementiert werden Control-Objekte müssen sich dann bei Ereignisquelle anmelden, damit diese die geforderten Ereignisse weitermeldet Objekte können sich bei mehreren Ereignisquellen anmelden Bei einer Ereignisquelle mehrere Objekte als Abhörer möglich 442

28 7.5 Anwendungsbeispiel Erstellung einer Abhörerklasse Prinzip: Button ActionEvent ActionListener Implementieren eines Event Handlers: 1. Die eigene Event Handler Klasse muss die Listener Schnittstelle implementieren: class MeinEventHandler implements ActionListener { 2. Die Event Handler Klasse muss sich als Listener bei einer oder mehreren Komponenten registrieren: Button.addActionListener(ObjektVonMeinEventHandler); 3. In der Event Handler Klasse werden die Methoden der Listener Schnittstelle implementiert: public void actionperformed(actionevent e) { // Reagiere auf das aufgetretene Ereignis } 443

29 7.5 Anwendungsbeispiel Beispiel JButton button Der Mausklick veranlasst den angeklickten JButton, ein Objekt event vom Typ ActionEvent zu erzeugen. Dieses wird an alle bei dem Button registrierten ActionListener Objekte geschickt. ActionEvent event Hat alle Informationen bzgl. des Ereignisses und seiner Quelle, sowie eine Beschreibung der Ausgeführten Aktion. MyListenerClass myactionlistener implementiert die Event Listener Methode actionperformed (), in der festgelegt ist, was beim Eintreten des Events passieren soll. Sie wird von dem Button bei dem das Objekt als ActionListener registriert ist aufgerufen. Animation: Ereignisverarbeitung in Java 444

30 7.5 Anwendungsbeispiel Event-Listener Schnittstellen Schnittstellen verschiedener Ereignis-Abhörer ActionListener zeigt Aktionen auf Button, List, MenuItem, TextField an MouseListener MouseMotionListener KeyListener FocusListener AdjustmentListener ItemListener TextListener Abhören von möglichen Maus-Klicks hört auf Mausbewegungen hört die Tastatur ab hört ab, ob eine Komponente den Eingabefokus erhält achtet auf Verschieben der Scrollbar beobachtet die Zustände von Auswahlboxen beobachtet Veränderungen in Textfeldern 445

31 7.6 Zusammenfassung 7 Entwurfsmuster und Frameworks 7.1 Entwurfsmuster, Klassenbibliotheken, Frameworks 7.2 Fabrikmethode-Muster 7.3 Singleton-Muster 7.4 Beobachter-Muster 7.5 Anwendungsbeispiel 7.6 Zusammenfassung 446

32 7 Entwurfsmuster und Frameworks Zusammenfassung 7 Klassenbibliotheken dienen der Wiederverwendung von Implementierungscode Entwurfsmuster beschreiben Lösungen für immer wiederkehrende Entwurfsprobleme Fabrikmethode-Muster (klassenbasiertes Erzeugungsmuster) Bietet eine Schnittstelle zum Erzeugen eines Objekts an Unterklassen entscheiden, von welcher Klasse das erzeugte Objekt ist Singleton-Muster (objektbasiertes Erzeugungsmuster) Stellt sicher, dass eine Klasse genau ein Objekt besitzt Ermöglicht einen globalen Zugriff auf dieses Objekt Beobachter-Muster (objektbasiertes Verhaltensmuster) Bei Änderung eines Objekts werden alle davon abhängigen Objekte benachrichtigt und automatisch aktualisiert Frameworks stellen Klassen bereit, die als Basisklassen für neu zu erstellende Anwendungen verwendet werden können 447

33 7 Entwurfsmuster und Frameworks Frage zu 7 Geben Sie an, welches Muster im folgenden Klassendiagramm beschrieben ist. Element Diagram draw() delete() tools * createelement() showelement() activeelement() tool = createelement() Link Object MyDiagram createelement() Antwort Fabrikmethode (factory method) In der Klasse MyDiagram wird durch die Fabrikmethode createelement() konkret festgelegt, welche Objekte sie erzeugen soll 448

Objektorientierte und Funktionale Programmierung SS 2014

Objektorientierte und Funktionale Programmierung SS 2014 Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten

Mehr

OM Entwurfsmuster. OM Entwurfsmuster. 7.1 Entwurfsmuster, Frameworks, Klassenbibl. Definition Entwurfsmuster (design pattern)

OM Entwurfsmuster. OM Entwurfsmuster. 7.1 Entwurfsmuster, Frameworks, Klassenbibl. Definition Entwurfsmuster (design pattern) 1 Inhalt: Entwurfsmuster 7.1 Entwurfsmuster, Frameworks, Klassenbibliotheken 7.2 Fabrikmethode-Muster 7.3 Singleton-Muster 7.4 Kompositum-Muster 7.5 Proxy-Muster 7.6 Fassaden-Muster 7.7 Beobachter-Muster

Mehr

Objektorientierteund FunktionaleProgrammierung

Objektorientierteund FunktionaleProgrammierung Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II SS 2012 6 Objektorientierte Entwurfsmuster Wissensbassierte Systeme / Wissensmanagement Einführung in die Informatik II 1 Prüfungstermine EI II im Sommersemester 2012 Klausurtermine

Mehr

Entwurfsmuster. Marc Monecke

Entwurfsmuster. Marc Monecke Entwurfsmuster Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068 Siegen 20. Mai 2003 Inhaltsverzeichnis 1 Grundlagen

Mehr

Objektorientierte und Funktionale Programmierung

Objektorientierte und Funktionale Programmierung Objektorientierte und Funktionale Programmierung SS 2013 6 Objektorientierte Entwurfsmuster Wissensbassierte Systeme / Wissensmanagement Objektorientierte und Funktionale Programmierung 1 PrüfungstermineOFP

Mehr

Software Engineering. 7. Entwurfsmuster

Software Engineering. 7. Entwurfsmuster Software Engineering 7. Entwurfsmuster Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz Implementierung

Mehr

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05. Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational

Mehr

Verhaltensmuster. Entwurfsmuster - Design Patterns. HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik

Verhaltensmuster. Entwurfsmuster - Design Patterns. HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik Entwurfsmuster - Design Patterns HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik 27. November 2009 Gliederung 1 Einführung 2 Strategie-Muster 3 Beobachter-Muster

Mehr

Lukas Klich. Projektgruppe SHUTTLE. Seminar: Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1. Entwurfsmuster

Lukas Klich. Projektgruppe SHUTTLE. Seminar: Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1. Entwurfsmuster Entwurfsmuster Lukas Klich Projektgruppe SHUTTLE Seminar: 28.11.2002 Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1 Motivation Die Menschheit löst Probleme, indem sie beobachtet, Beobachtungen

Mehr

3. Übung Softwaretechnik

3. Übung Softwaretechnik 3. Übung Softwaretechnik - Entwurf / Design - Wintersemester 2007/2008 Thorsten Berger, Thomas Riechert 1 Organisatorisches Voranmeldung Softwaretechnik-Praktikum im Sommersemester 2008 https://olat.informatik.uni-leipzig.de:9101/olat/auth/repo/go?rid=11403282

Mehr

Design Patterns I. Observer, Listener & MVC

Design Patterns I. Observer, Listener & MVC Design Patterns I Observer, Listener & MVC Design Patterns I - Gliederung - Was sind Design Patterns? - Definition von Design Patterns - Entstehung - Nutzen & Verwendung - MVC - Model, View, Controller

Mehr

Entwurfsmuster. Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik

Entwurfsmuster. Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik Entwurfsmuster Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik Information über Entwurfsmuster Die heutige Vorlesung: Einführung in die Thematik Die Vorlesung am 12.01:

Mehr

Design Patterns II. Der Design Muster Katalog. Prof. Dr. Nikolaus Wulff

Design Patterns II. Der Design Muster Katalog. Prof. Dr. Nikolaus Wulff Design Patterns II Der Design Muster Katalog Prof. Dr. Nikolaus Wulff Wiederverwendung Wiederverwendung ist das Schlagwort von OOP zur Erhöhung der Produktivität. Es gibt im Prinzip drei Methoden hierzu:

Mehr

Effizientes Programmieren

Effizientes Programmieren Effizientes Programmieren Praktikum smuster (09.05.2016) Christopher Pietsch Agenda 1 2 smuster 3 4 1 / 23 smuster (09.05.2016) smuster Teil 1 2 / 23 smuster (09.05.2016) smuster Definition: [...] alle

Mehr

Effizientes Programmieren

Effizientes Programmieren Effizientes Programmieren Praktikum smuster (04.07.2017) Christopher Pietsch Agenda 1 2 smuster 3 4 1 / 23 smuster (04.07.2017) smuster Teil 1 2 / 23 smuster (04.07.2017) smuster Definition: [...] alle

Mehr

Model-View-Controller

Model-View-Controller Software Design Pattern Model-View-Controller Michael Lühr Gliederung Einführung und Problemstellung Ansatz durch MVC Detaillierte Darstellung der Komponenten Model View Controller Vor- und Nachteile Zusammenfassung

Mehr

Software-Entwurfsmuster (weitere) A01 OOP. Software-Entwurfsmuster (weitere)

Software-Entwurfsmuster (weitere) A01 OOP. Software-Entwurfsmuster (weitere) 2014-01-08 Software-Entwurfsmuster (weitere) 1 185.A01 OOP Software-Entwurfsmuster (weitere) 2014-01-08 Software-Entwurfsmuster (weitere) 2 OOP Vererbung versus Delegation class A { public void x() { z();

Mehr

Erzeugungsmuster. Kapselung der Objekt-Erzeugung

Erzeugungsmuster. Kapselung der Objekt-Erzeugung Erzeugungsmuster Kapselung der Objekt-Erzeugung Definition Erzeugungsmuster dienen für die Lose Koppelung, bei der erst zur Laufzeit der Typ des zu erzeugenden Objekts festgelegt wird. Abstract Factory

Mehr

OOP. Tagesprogramm. Software-Entwurfsmuster. Factory-Method. Prototype

OOP. Tagesprogramm. Software-Entwurfsmuster. Factory-Method. Prototype 1 2014-12-10 Tagesprogramm Software-Entwurfsmuster Factory-Method Prototype 2 2014-12-10 Software-Entwurfsmuster Zweck von Entwurfsmustern Benennen wiederkehrender Probleme und Lösungen Austasch von Erfahrungen

Mehr

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15. Institut für Angewandte Informatik

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15.  Institut für Angewandte Informatik Programmieren II Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Events in Java Graphische Anwendungen werden über Events gesteuert.

Mehr

185.A Software-Entwurfsmuster 1 OOP. Software-Entwurfsmuster

185.A Software-Entwurfsmuster 1 OOP. Software-Entwurfsmuster 2013-12-11 Software-Entwurfsmuster 1 185.A01 OOP Software-Entwurfsmuster 2013-12-11 Software-Entwurfsmuster 2 OOP Zweck von Entwurfsmustern Benennen wiederkehrender Probleme und Lösungen Austasch von Erfahrungen

Mehr

OOP. Tagesprogramm. Aspekte und Annotationen. Software-Entwurfsmuster. Factory-Method. Prototype

OOP. Tagesprogramm. Aspekte und Annotationen. Software-Entwurfsmuster. Factory-Method. Prototype 1 2017-01-11 Tagesprogramm Aspekte und Annotationen Software-Entwurfsmuster Factory-Method Prototype 2 2017-01-11 Aspekte und Annotationen Aspektorientierte Programmierung Paradigma der Modularisierung

Mehr

OOSE 8 Entwurfsmuster (Hörsaalübung)

OOSE 8 Entwurfsmuster (Hörsaalübung) OOSE 8 Entwurfsmuster (Hörsaalübung) SS 2015 Birgit Demuth Entwurfsmuster in Softwaretechnologie 2015 Prüfungsrelevant Composite Iterator Factory Method Class Adapter Object Adapter Observer Singleton

Mehr

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

Software Engineering. 10. Entwurfsmuster II. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering 10. Entwurfsmuster II Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: 10. Entwurfsmuster II 2 Die Entwurfsmuster der Gang of Four Die 23 GoF Pattern sind in 3 Gruppen

Mehr

Entwurfsmuster Martin Fesser 00IN

Entwurfsmuster Martin Fesser 00IN Entwurfsmuster Martin Fesser 00IN Inhalt Was sind Entwurfsmuster? Vorteile, Nachteile Entwurfsmusterkatalog (nach GoF) Variation von Entwurfsaspekten Wie Entwurfsmuster Entwurfsprobleme lösen Beispiele

Mehr

Design Pattern. Motivation, Beispiel Definition "Das" Buch der Gang of Four Ausführliches Beispiel: Facade Beispiele. Aufgabe

Design Pattern. Motivation, Beispiel Definition Das Buch der Gang of Four Ausführliches Beispiel: Facade Beispiele. Aufgabe , Beispiel der Gang of Four Ausführliches Beispiel: Beispiele Wiederverwendung ist etwas Gutes...!!! Wiederverwendung (auch: Verständlichkeit, Änderbarkeit, Portierbarkeit etc.) wird auf Design-Ebene ermöglicht

Mehr

Institut für Programmierung und Reaktive Systeme. GUIs mit Swing. Markus Reschke

Institut für Programmierung und Reaktive Systeme. GUIs mit Swing. Markus Reschke GUIs mit Swing Markus Reschke 28.08.2014 Beispiel: Ein einfaches GUI-Programm Siehe Painter.java Markus Reschke GUIs mit Swing 2 GUI Frameworks in Java AWT war das erste GUI-Framework, welches mit Java

Mehr

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15. Institut für Angewandte Informatik

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15.  Institut für Angewandte Informatik Programmieren II Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Event-Modelle in Java Graphische Anwendungen werden über Events

Mehr

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15. Institut für Angewandte Informatik

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15.  Institut für Angewandte Informatik Programmieren II Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Event-Modelle in Java Graphische Anwendungen werden über Events

Mehr

Entwurfsmuster. Die Entwurfsmuster Observer, State und Singleton am Beispiel einer Digital-Uhr

Entwurfsmuster. Die Entwurfsmuster Observer, State und Singleton am Beispiel einer Digital-Uhr Entwurfsmuster Die Entwurfsmuster Observer, State und Singleton am Beispiel einer Digital-Uhr Was sind Entwurfsmuster (1) Muster (allg.) sind schematische Lösungen für eine Klasse verwandter Probleme Beschreibung:

Mehr

Verteidigung Großer Beleg

Verteidigung Großer Beleg Verteidigung Großer Beleg Die GoF-Entwurfsmuster in Java Corinna Herrmann ch17@inf.tu-dresden.de Gliederung 1. Aufgabenstellung 2. Entwurfsmuster 3. Verwandte Arbeiten 4. Beispiele: 4.1. Adapter 4.2. Flyweight

Mehr

Entwurfsmuster - Iterator

Entwurfsmuster - Iterator HTWG Konstanz 7. Mai 2009 Muster Klassifikation objektbasiertes Verhaltensmuster des Patterns Ermögliche den sequentiellen Zugriff auf die Elemente eines zusammengestzten Objekts, ohne seine zugrundeligende

Mehr

Zweck: sequentieller Zugriff auf Elemente eines Aggregats. mehrere Abarbeitungen des Aggregatinhalts

Zweck: sequentieller Zugriff auf Elemente eines Aggregats. mehrere Abarbeitungen des Aggregatinhalts Iterator (Cursor) Zweck: sequentieller Zugriff auf Elemente eines Aggregats Anwendungsgebiete: Zugriff auf Aggregatinhalt innere Darstellung bleibt gekapselt mehrere Abarbeitungen des Aggregatinhalts einheitliche

Mehr

Zweck: sequentieller Zugriff auf Elemente eines Aggregats

Zweck: sequentieller Zugriff auf Elemente eines Aggregats Iterator (Cursor) Zweck: sequentieller Zugriff auf Elemente eines Aggregats Anwendungsgebiete: Zugriff auf Aggregatinhalt innere Darstellung bleibt gekapselt mehrere Abarbeitungen des Aggregatinhalts einheitliche

Mehr

Fakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 8

Fakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 8 WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 12.12.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 8 Abgabe: Montag, 19.12.2011, 12.00 Uhr, Informatik

Mehr

EAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ

EAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ EAD II Übung 5 Graphische Benutzungsoberfläche mit BlueJ Graphische Benutzungsoberfläche (GUI) Fenster, das weitere Komponenten zur Darstellung und Interaktion enthält spezielle Standardbibliotheken erforderlich,

Mehr

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

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans Graphische Benutzungsoberflächen mit Java Einführung in NetBeans Graphische Benutzungsoberflächen! Interaktion mit dem Programm! Datenein- und ausgabe! Rückmeldungen über Verarbeitung der Daten! Visualisierung

Mehr

Design Patterns. 3. Juni 2015

Design Patterns. 3. Juni 2015 Design Patterns 3. Juni 2015 Überblick Was sind Design Patterns? Welche Design Patterns gibt es? Wann sollte man Design Patterns einsetzen? Taentzer Softwarequalität 2015 138 Was sind Design Patterns?

Mehr

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Grafische Benutzeroberflächen Grafische Benutzeroberflächen 1 Ziele Grafische Benutzeroberflächen (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen.

Mehr

Einführung in die OOP mit Java

Einführung in die OOP mit Java Einführung in die OOP mit Java Das Event-Hanlding Übersicht Event - Handling Das im JDK 1.1 Grundlagen Ereignistypen Ereignisquellen Adapterklassen für den Nachrichtenverkehr Variante1: Implementierung

Mehr

3 Properties, Bindings und JavaFX-Collections

3 Properties, Bindings und JavaFX-Collections Properties, Bindings und JavaFX Collections 31 3 Properties, Bindings und JavaFX-Collections Dieses Kapitel beschäftigt sich mit wichtigem Basiswissen für das Verständnis der JavaFX Elemente. Nachdem wieder

Mehr

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Exkurs: ANONYME KLASSEN Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Anonyme Klassen Eigenschaften 1 Häufigste Anwendung lokaler Klassen: anonyme Definition. Klasse erhält keinen eigenen

Mehr

Beispiel: Eine Choice-Liste...

Beispiel: Eine Choice-Liste... Beispiel: Eine Choice-Liste...! "#%$&! ; = '( ) )+**,-. /*0 1 2 ) 3 #%$+45* 6 7%$& -* 89 #6 #:/*0 #%$ < /0 # 1< ) 1< >?270 #@ < /0 # 1 2 ) )

Mehr

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des

Mehr

Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen

Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen

Mehr

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit

Mehr

Entwurfsmuster (Design Patterns)

Entwurfsmuster (Design Patterns) Entwurfsmuster (Design Patterns) SEP 303 Entwurfsmuster (Design Patterns) In der alltäglichen Programmierarbeit tauchen viele Probleme auf, die man schon einmal gelöst hat und die man in der Zukunft wieder

Mehr

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

Objektorientierte Programmierung (OOP)

Objektorientierte Programmierung (OOP) orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,

Mehr

Ein Entwurfsmuster der GoF. vorgestellt von. Sigrid Weil 16. Januar 2008

Ein Entwurfsmuster der GoF. vorgestellt von. Sigrid Weil 16. Januar 2008 Ein Entwurfsmuster der GoF vorgestellt von Sigrid Weil 16. Januar 2008 Einleitung 2 Entwurfsmuster (Design Patterns) beschreiben Probleme, die wiederholt in unterschiedlichsten Zusammenhängen aufreten

Mehr

Entwurfsmuster. Rainer Schmidberger

Entwurfsmuster. Rainer Schmidberger Entwurfsmuster Rainer Schmidberger schmidrr@informatik.uni-stuttgart.de Copyright 2004, Rainer Schmidberger, Universität Stuttgart, Institut für Softwaretechnologie, Abt. Software Engineering Was sind

Mehr

Software-Entwurfsmuster

Software-Entwurfsmuster Software-Entwurfsmuster benennen wiederkehrende Probleme und Lösungen dienen dem Austasch von Erfahrungen Wiederverwendung von Erfahrung wo Wiederverwendung von Code versagt sehr abstrakt, daher häufig

Mehr

Programmiertechnik GUI Programmierung mit Java Swing

Programmiertechnik GUI Programmierung mit Java Swing Programmiertechnik GUI Programmierung mit Java Swing Prof. Dr. Oliver Haase Software Engineering und Verteilte Systeme Raum F012 haase@htwg-konstanz.de Tel: 07531/206-720 Oliver Haase Hochschule Konstanz

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik GUI-Programmierung mit Swing

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik GUI-Programmierung mit Swing Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik GUI-Programmierung mit Swing AWT und Swing Java enthält zwei Pakete zur Programmierung graphischer Oberflächen. java.awt: Das Abstract

Mehr

Design Patterns. (Software-Architektur) Prof. Dr. Oliver Braun. Letzte Änderung: :12. Design Patterns 1/26

Design Patterns. (Software-Architektur) Prof. Dr. Oliver Braun. Letzte Änderung: :12. Design Patterns 1/26 Design Patterns (Software-Architektur) Prof. Dr. Oliver Braun Letzte Änderung: 11.07.2017 15:12 Design Patterns 1/26 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides:

Mehr

Factory Method (Virtual Constructor)

Factory Method (Virtual Constructor) Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte

Mehr

Komponenten & Frameworks Seite 1

Komponenten & Frameworks Seite 1 Ausgangssituation Wir wollen eine einfache Windowsanwendung mit einem Fenster erstellen. Dieses Fenster enthält (Container!) einen Button der beim klicken das Schreiben in ein Textfeld bewirkt. Was ist

Mehr

Kapitel 8: Grafische Benutzerschnittstellen

Kapitel 8: Grafische Benutzerschnittstellen Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Kapitel 8: Grafische Benutzerschnittstellen Prof. Dr. David Sabel Lehr- und Forschungseinheit für Theoretische

Mehr

Auf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs...

Auf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs... Auf einen Blick Auf einen Blick 1 Einleitung... 15 2 Die Basis der Objektorientierung... 29 3 Die Prinzipien des objektorientierten Entwurfs... 41 4 Die Struktur objektorientierter Software... 67 5 Vererbung

Mehr

3. Entwurfsmuster zur Entkopplung von Modulen

3. Entwurfsmuster zur Entkopplung von Modulen 3. Entwurfsmuster zur Entkopplung von Modulen OOP-3.1 Entwurfsmuster (Design Patterns): Software-Entwicklungsaufgaben, die in vielen Ausprägungen häufig auftreten. Objektorientierte Schemata, die als Lösungen

Mehr

Softwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2009

Softwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2009 Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2009 Überblick I 1 Entwurfsmuster Entwurfsmuster: Entwurfsmuster

Mehr

Entwurfsmuster in Java

Entwurfsmuster in Java Entwurfsmuster in Java Das Observer- und das Decorator-Pattern Friederike Löwe 13. März 2011 Inhaltsverzeichnis Einleitung Wozu eigentlich Entwurfsmuster? Die Grundlage: Design-Prinzipien Das Decorator-Pattern

Mehr

MVVM (Model View ViewModel) in JavaFX

MVVM (Model View ViewModel) in JavaFX MVVM (Model View ViewModel) in JavaFX SEP Sommersemester 2019 Nicolas Brauner 30.04.2019 DBS Wissenschaftlicher Betreuer: Maximilian Hünemörder, Ludwig Zellner Verantwortlicher Professor: Prof. Dr. Peer

Mehr

Graphical User Interfaces

Graphical User Interfaces Graphical User Interfaces SEP 184 Toolkits es gibt verschiedene Toolkits (= Sammlungen von Klassen, Anbindungen an Betriebssystem, etc.) für grafische Oberflächen Abstract Windows Toolkit (AWT) Swing Standard

Mehr

Ereignisbehandlung 21

Ereignisbehandlung 21 Ereignisbehandlung 21 3 Ereignisbehandlung Dieses Kapitel beschäftigt sich mit der Ereignisbehandlung, d.h. der Reaktion eines Programms auf Eingaben durch benutzende Personen. Nach einigen ersten Beispielen

Mehr

Einführung in die Programmierung Blockkurs Java

Einführung in die Programmierung Blockkurs Java Michael Bader 8. 12. April 2002 Mittwoch Inhaltsübersicht Eigene Klassen definieren Vererbung Abstrakte Klassen Schnittstellen Polymorphismus Designbeispiele: Java-AWT Strings in Java Funktionen und Funktionsplotter

Mehr

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

Softwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2010/11 Überblick I Entwurfsmuster Entwurfsmuster: Entwurfsmuster

Mehr

3. Entwurfsmuster zur Entkopplung von Modulen. Übersicht zu Entwurfsmustern

3. Entwurfsmuster zur Entkopplung von Modulen. Übersicht zu Entwurfsmustern 3. Entwurfsmuster zur Entkopplung von Modulen OOP-3.1 Vorlesung Objektorientierte Programmierung WS 2013/2014 / Folie 301 Entwurfsmuster (Design Patterns): Idee der Entwurfsmuster verstehen Software-Entwicklungsaufgaben,

Mehr

Einführung in die Programmierung für NF. Grafische Benutzeroberflächen

Einführung in die Programmierung für NF. Grafische Benutzeroberflächen Einführung in die Programmierung für NF Grafische Benutzeroberflächen Ziele Grafische Benutzeroberflächen (Graphical User Interfaces) als Anwendungsbeispiel für die objektorienferte Programmierung kennenlernen.

Mehr

Wahlpflichtfach Design Pattern

Wahlpflichtfach Design Pattern Wahlpflichtfach Design Pattern Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik miwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943 / 659 338

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Design Patterns. OO-GetTogether. Volker Michels

Design Patterns. OO-GetTogether. Volker Michels 1 Design Patterns OO-GetTogether Volker Michels 2 Muster (engl. Pattern) Züllighoven: Ein Muster ist eine Abstraktion von einer konkreten Form, die wiederholt in bestimmten nicht willkürlichen Kontexten

Mehr

Praxisbuch Objektorientierung

Praxisbuch Objektorientierung Bernhard Lahres, Gregor Rayman Praxisbuch Objektorientierung Von den Grundlagen zur Umsetzung Galileo Press 1.1 Was ist Objektorientierung? 11 1.2 Hallo liebe Zielgruppe 12 1.3 Was bietet dieses Buch (und

Mehr

11. GUI-Programmierung mit SWING Überblick

11. GUI-Programmierung mit SWING Überblick 11. GUI-Programmierung mit SWING Überblick 11.1 Einführung 11.2 Einfache Swing Komponenten 11.3 Ereignisbehandlung und Adapterklassen 11.4 Zeichnen 11.5 Dialoge 11.6 Layout Manager 11.7 Komplexere Swing

Mehr

Was passiert, wenn Button "Ok?" mit Maus angeklickt?

Was passiert, wenn Button Ok? mit Maus angeklickt? Ein Beispiel-Frame Was passiert, wenn Button "Ok?" mit Maus angeklickt? gar nichts!!! FH AACHEN UNIVERSITY OF APPLIED SCIENCES OOS Prof. Dr. H. Faßbender Ereignisverarbeitung 27. April 2016 1 Implementierung

Mehr

Software-Architektur. Design Patterns. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Software-Architektur. Design Patterns. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München Software-Architektur Design Patterns Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 11.07.2017 15:12 Inhaltsverzeichnis Standardwerk.................................... 2 Design

Mehr

Strategie. (Strategy. / Policy) Ein objektbasiertes Verhaltensmuster. Stephan Munkelt, Stefan Salzmann - 03IN

Strategie. (Strategy. / Policy) Ein objektbasiertes Verhaltensmuster. Stephan Munkelt, Stefan Salzmann - 03IN Strategie (Strategy / Policy) Ein objektbasiertes Verhaltensmuster Gliederung 1. Zweck 2. Motivation 3. Anwendbarkeit 4. Struktur 5. Teilnehmer 6. Interaktionen 7. Konsequenzen 8. Implementierung 9. Beispiele

Mehr

Waitomo. Compilerbaupraktikum Wintersemester 2006/2007. Stefan Wehr. 24. Oktober 2006

Waitomo. Compilerbaupraktikum Wintersemester 2006/2007. Stefan Wehr. 24. Oktober 2006 Waitomo Compilerbaupraktikum Wintersemester 2006/2007 Stefan Wehr 24. Oktober 2006 1 Einleitung Quellsprache für das Compilerbaupraktikum ist Waitomo, ein Java-ähnliche Sprache mit Unterstützung für Typklassen

Mehr

Structural Patterns. B. Sc. Andreas Meißner

Structural Patterns. B. Sc. Andreas Meißner Structural Patterns B. Sc. Andreas Meißner Seminar Software-Entwurf Fachgebiet Software Engineering, Institut für Angewandte Systeme, Universität Hannover 11/16/2004 Gliederung 1. Wiederholung Entwurfsmuster

Mehr

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

Seite Architektur interaktiver Systeme. 7. Architektur interaktiver Systeme. 7.1 Entkopplung durch Sichten. Schichtenarchitektur 7. Architektur interaktiver Systeme 7.1 Entkopplung durch Sichten 7.2 Ereignisgesteuerter Programmablauf 7.3 Benutzungsoberflächen 7. Architektur interaktiver Systeme 7.1 Entkopplung durch Sichten 'The

Mehr

Factory Patterns und deren Auswirkung auf die Softwarearchitektur in der Praxis

Factory Patterns und deren Auswirkung auf die Softwarearchitektur in der Praxis Factory Patterns und deren Auswirkung auf die Softwarearchitektur in der Praxis Klaus Kusche, Juni 2013 Inhalt Was ist das? Warum braucht man das? Was bringt das? Wann hilft es noch? Realistisches Beispiel

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Objektorientierung in C++ (2) Beziehungen zwischen Klassen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 530 Beziehungen zwischen Klassen Assoziation

Mehr

Software Engineering Entwurfsmuster (update: 11.6.)

Software Engineering Entwurfsmuster (update: 11.6.) Software Engineering Entwurfsmuster (update: 11.6.) Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Entwurfsmuster Entwurfsmuster (Design Patterns) geben bewährte

Mehr

Info B VL 11: Innere Klassen/Collections

Info B VL 11: Innere Klassen/Collections Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 12. UML GUI-Schicht 1 GUI-Schicht Sichtbarmachen

Mehr

Ereignisse (Events) in Java

Ereignisse (Events) in Java Ereignisse (Events) in Java werden durch Aktionen an GUI-Komponenten ausgelöst Quelle: GUI-Komponente, die ein Ereignis als Instanz einer Event-Klasse erzeugt Beispiel: ein Button, der angeklickt wird

Mehr

GRAFISCHE BENUTZERSCHNITTSTELLEN

GRAFISCHE BENUTZERSCHNITTSTELLEN Vorlesung 4.4 GRAFISCHE BENUTZERSCHNITTSTELLEN Dr. Philip Mayer # 1 GUIs Grafische Benutzerschnittstellen (GUIs, Graphical User Interfaces) bieten dem Benutzer Zugriff auf ein Anwendungssystem GUIs sind

Mehr

Objektorientierte Systementwicklung

Objektorientierte Systementwicklung Karl-Heinz Rau Objektorientierte Systementwicklung Vom Geschäftsprozess zum Java-Programm Mit 162 Abbildungen vieweg Überblick und Vorbemerkungen 1 1 Objektorientierte Software-Entwicklung 5 1.1 Überblick

Mehr

Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick

Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick 1 Einführung 2 Einfache Swing Komponenten 3 Ereignisbehandlung und Adapterklassen 4 Zeichnen 5 Layout Manager 6 Komplexere Swing Komponenten

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1 IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Bernhard Lahres, Gregor Rayman Objektorientierte Programmierung Das umfassende Handbuch Galileo Press 1.1 Was ist Objektorientierung? 13 1.2 Hallo liebe Zielgruppe 14 1.3 Was bietet dieses Buch (und was

Mehr

Instrumentierung und Dekodierung

Instrumentierung und Dekodierung 116 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Instrumentierung und Dekodierung Erweiterung der Grafikklassen Das awt-paket erweitert alle Klassen für Grafikobjekte in java.awt, so

Mehr

Eventhandling. Delegation model Eventhandler model

Eventhandling. Delegation model Eventhandler model Eventhandling Dient der Kommunikation der Controlls mit der eigentlichen Anwendung. Prinzipiell gibt es zwei verschiedene Verfahren für das Eventhandling Delegation model Eventhandler model Die Arbeit

Mehr