Software Design Patterns Flashcards
Was bedeutet SOLID? Erkläre die einzelnen Bereiche ebenso.
S - Single-Responsibility (Tu nur eine Sache)
O - Open-Closed (Offen für Erweiterung, geschlossen für Änderung)
L - Liskovsches Substitutionsprinzip (Base-Klasse: Bird mit Methode “fly()” - wenn eine erbende Klasse davon (Pinguin) dann nicht fliegen kann, ist das Gesetz verletzt)
I - Interface-Segregation (Keine “Monster”-Interfaces)
D - Dependency-Inversion (keine spezielle Abhängigkeit, sondern eine allgemeine Abhängigkeit)
In welche Bereiche werden Design Pattern kategorisiert?
Erzeugende Muster (Factory, Builder, Singleton)
Strukturelle Muster (Adapter, Bridge, Facade)
Verhaltensmuster (Command, Iterator, Mediator)
Was ist UML?
= Unified Modeling Language
Eine gemeinsame “Meta-Sprache”, um mit anderen zu kommunizieren
Wie werden Klassen in UML dargestellt?
protected
+ public
- private
# protected
~ internal
Statische Attribute werden unterstrichen
Wie werden Abstrakte Klassen und Interfaces in UML dargestellt?
Abstrakte Klassen werden kursiv geschrieben, Interfaces mit <<interface>>
Was ist Generalisierung in UML?
Generalisierung:
Firmenkunde ist ein Kunde (Klassenvererbung) –> Leerer Pfeil mit Strich von Firmenkunde zu Kunde
Spezialkunde ist ein IKunde (Interfaceerbung) –> leerer Pfeil mit gestrichelten Linie von Spezialkunde zu IKunde
Was ist Assoziierung in UML?
Assoziierung:
Kunde benutzt ein Konto (nur Linie zwischen beiden Knoten)
Kunde hat beliebig viele Konten (Pfeil von Kunde Richtung Konto, 1 steht bei Kunde, * bei Konto)
Was ist Komposition in UML?
Komposition:
Eine Bestellung besteht aus Bestellpositionen (Bestellposition kann nicht ohne Bestellung existieren)
Aufgefüllte Raute von Bestellposition (1..*) zu Bestellung (ausgefüllte Raute)
Was ist Aggregation in UML?
Aggregation:
In einer Vorlesung sind Studierende - ein Student kann auch ohne Vorlesung existieren (leere Raute)
Studierender (5..*) mit Verbindung zur Vorlesung (leere Raute)
Wie stellt man ein Singleton in UML dar?
Siehe Unterlagen.
Klient verwendet Singleton (mit privater Instanz als Member, privatem Konstrukto und einer public Instance() Methode
Was ist das Strategy Pattern?
Das Verhalten einer Klasse sollte sich während der Laufzeit verändern (AI Controller)
UML-Diagramm in den Unterlagen.
Was ist das Composite Pattern?
Composites dienen zur Verwaltung von Objekten, die sich als Baum-Struktur darstellen lassen (erlaubt ineinanderstecken von Objekten) -> Dateisystem
UML-Diagramm in den Unterlagen.
Was ist das Command Pattern?
Kapselung von Befehlen in eigenen Objekten, die sich als Methoden-Paremeter übergeben lassen
Beispiel: Speichern in einem Text-Editor
UML-Diagramm in den Unterlagen.
Was ist das Mediator Pattern?
Der Mediator dient der Reduktion von direkten Interaktionen zwischen vielen Objekten (Chat-System, wo alles Klienten mit dem Mediator reden und dieser die Nachrichten weiterleitet, auch bei Event Bussen)
UML-Diagramm in den Unterlagen.
Was ist Refactoring?
Der Prozess zur Verbesserung der Code Qualität in den Bereichen der…
Lesbarkeit
Geschwindigkeit
keine neuen Features
keine Bugs fixen