22 Softwaretechnik - Strukturmuster Flashcards
Was ist die grundsätzliche Motivation hinter Strukturmustern?
Strukturmuster erleichtern die Erstellung objektorientierter Programme, indem sie Schablonen bereitstellen, die erklären, wie man Komponenten zu größeren Strukturen zusammensetzt.
Was ist eine Facade in der Softwarearchitektur?
Eine Facade ist eine Schnittstelle zu einem komplexen System, die die Komplexität gegenüber dem Klienten verbirgt und eine vereinfachte, eingeschränkte Schnittstelle bietet. Der Klient greift ausschließlich auf die Facade zu.
Welche Vorteile und Nachteile bietet das Facade Pattern?
- Vorteile: Starke Reduzierung der Komplexität, lose Kopplung zwischen Klassen, leicht erweiterbares System.
- Nachteile: Zusätzliche Stufe zwischen Klient und System.
Was ist ein Adapter in der Softwareentwicklung?
Ein Adapter ist eine Struktur, die zwischen zwei Systemen vermittelt, die keine kompatible Schnittstelle besitzen. Der Adapter übersetzt die Schnittstelle des adaptierenden Systems entsprechend den Erwartungen des Klienten.
Welche Vorteile und Nachteile bietet das Adapter Pattern?
- Vorteile: Ermöglicht die Kommunikation mit einer adaptierten Klasse.
- Nachteile: Der Adapter wird nur auf eine spezifische Klasse angewendet, Unterklassen werden nicht automatisch adaptiert.
Was ist ein Proxy in der Softwareentwicklung?
Ein Proxy ist ein Stellvertreter für eine andere Klasse. Er wird verwendet, um den Zugriff auf diese Klasse zu kontrollieren. Ein Proxy implementiert die Schnittstelle der originalen Klasse und leitet Anfragen an das Objekt weiter, möglicherweise mit zusätzlichen Operationen oder Prüfungen.
Welche Arten von Proxies gibt es?
Es gibt verschiedene Arten von Proxies, darunter:
- Virtual Proxy: Verzögert komplexe Aktivitäten bis zum tatsächlichen Bedarf.
- Security Proxy: Reglementiert oder prüft bestimmte Operationen auf Sicherheit.
- Smart Reference: Protokolliert und erweitert Zugriffe auf Methoden.
- Remote Proxy: Ermöglicht den Zugriff auf ein Objekt außerhalb des Adressraums.
Welche Vorteile und Nachteile bietet das Proxy Pattern?
Vorteile: Kontrolliert den Zugang zu einem Objekt und ermöglicht zusätzliche Funktionalitäten, ohne dass der Client davon erfährt.
Nachteile: Längere Laufzeit.
Was ist ein Decorator in der Softwareentwicklung?
Ein Decorator erweitert eine Klasse um Zuständigkeiten, ohne sie abzuleiten. Das Objekt selbst wird dabei nicht verändert. Die Decorator-Klasse implementiert die gleiche Schnittstelle wie das zu dekorierende Objekt, kann aber zusätzliche Funktionen hinzufügen.
Welche Vorteile und Nachteile bietet das Decorator Pattern?
- Vorteile: Erweitert ein Objekt ohne Vererbung und vermeidet unübersichtliche Vererbungshierarchien. Ermöglicht die Verkettung von Decorators.
- Nachteile: Erhöhter Overhead durch Weiterleitung von Nachrichten, Gleichheitstests werden schwieriger.