Software Entwurfsmuster Flashcards
1
Q
Was ist das Ziel von Entwurfsmustern?
A
- Lösung von Problemen unabhängig der Programmiersprache
- Jede Komponente sollte so austauschbar wie möglich sein
- Objekte sollten so unabhängig wie möglich voneinander sein
- Kommunikationsschnittstellen zwischen Objekten sollten auf das absolute Minimum reduziert werden
Vorteil: Hohe Wartbarkeit, Hohe Testbarkeit, Hohe Erweiterbarkeit
2
Q
Was gilt es bei Entwurfsmustern zu beachten?
A
- Muster sollen Probleme vereinfachen
- Ein Muster muss zum Problem passen
- Es gibt nicht das Muster für alle Probleme
- Muster sind nicht auf objektorientierte Sprachen beschränkt
3
Q
Welche 3 Arten von Pattern gibt es?
A
- Erzeugungsmuster
- Strukturmuster
- Verhaltensmuster
4
Q
Was sind Erzeugungsmuster und was ist ihr Zweck?
A
- Muster die der Erzeugung von Objekten verbessert
- Motivation: Erzeugung eines Objektes und deren Verwendung soll voneinander entkoppelt werden
- Erzeugung eines Objektes mit new wird in eine eigene Klasse ausgelagert
- Die Erzeugerklasse wird über ein abstraktes Interface abgewickelt und liefert ein abstraktes Interface eines Objekts zurück.
- Erzeugerklasse kann erzeugte Objekte beliebig austauschen
*Erzeugerklasse kann beliebig ersetzt werden
5
Q
Was ist das Singleton-Pattern?
A
- Verwendung: Wenn sicher gestellt werden muss, dass eine bestimmte Komponente nur einmal innerhalb eines Systems existiert
- Es wird über einen privaten Konstruktor und eine statische getInstance() Methode realisiert
- Die Instanz selbst ist ebenfalls statisch
6
Q
Was ist die Abstract-Factory?
A
- Eine Abstract Factory erzeugt eine Produktfamilie, die aus einzelnen Produkten besteht. Diese Produktfamilie bilden eine Einheit.
- Die Factory kann ausgetauscht werden.
- Die Abstract Factory wird über eine Schnittstelle realisiert, die je nach Kontext konkret implementiert wird.
- Die Factory gibt abstrakte Referenzen zurück, die je nach Factory mit konkreten Unterklassen implementiert sind.
7
Q
Was sind Vorteile und Nachteile der Abstract Factory?
A
8
Q
Was ist die Factory-Method?
A
- Trennung von Erzeugung und Nutzung von Objekten.
- Die Erzeugung eines Objekts wird an eine Methode einer separaten Klasse (Factory-Objekt) delegiert
- Konkrete Unterklassen erzeugen Objekte für spezifische Kontexte.
- Die Factory-Methode kann parametrisiert sein.
9
Q
Was sind Vor- und Nachteile der Factory-Method?
A
10
Q
Was ist das Builder-Pattern?
A
- Hintergrund: Komplexe Objekte werden konstruiert, deren Erzeugung mehrere Schritte erfordert.
- Umsetzung:
- Eine Builder-Klasse wird erzeugt, die andere Objekte erzeugt
- Die Klasse erlaubt das schrittweise Festlegen von Attributen
- Eine build()-Methode erstellt dann das Objekt anhand der festgelegten Attribute
11
Q
Was sind Strukturmuster und wofür benutzt man sie?
A
- Strukturmuster erleichtern Erstellung objektorientierter Programme durch vorgegebene Schablonen.
- Muster erklären, wie man Komponenten zu größeren Strukturen zusammensetzt.
12
Q
Was ist das Facaden-Pattern?
A
- Eine Facade ist eine Schnittstelle zu einem komplexen System.
- Die Komplexität wird gegenüber dem Klienten verborgen. Stattdessen bietet die Fassade eine vereinfachte, eingeschränkte Schnittstelle.
- Der Klient greift ausschließlich auf die Fassade zu.
13
Q
Was sind Vor- und Nachteile des Facaden-Pattern?
A
14
Q
Was ist das Adapter-Pattern?
A
- Gegeben sind zwei Systeme, die miteinander kommunizieren müssen, aber keine kompatible Schnittstelle besitzen.
- Ein Adapter vermittelt zwischen den beiden Systemen
- Beide Systeme bleiben unverändert: Der Adapter übersetzt die Schnittstelle des adaptierenden Systems entsprechend der Erwartung des Klienten.
15
Q
Was sind Vor- und Nachteile des Adapter-Pattern?
A