Software Design Patterns Flashcards

1
Q

Was bedeutet SOLID? Erkläre die einzelnen Bereiche ebenso.

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

In welche Bereiche werden Design Pattern kategorisiert?

A

Erzeugende Muster (Factory, Builder, Singleton)
Strukturelle Muster (Adapter, Bridge, Facade)
Verhaltensmuster (Command, Iterator, Mediator)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist UML?

A

= Unified Modeling Language
Eine gemeinsame “Meta-Sprache”, um mit anderen zu kommunizieren

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie werden Klassen in UML dargestellt?

A

protected

+ public
- private
# protected
~ internal

Statische Attribute werden unterstrichen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wie werden Abstrakte Klassen und Interfaces in UML dargestellt?

A

Abstrakte Klassen werden kursiv geschrieben, Interfaces mit <<interface>>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist Generalisierung in UML?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist Assoziierung in UML?

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist Komposition in UML?

A

Komposition:
Eine Bestellung besteht aus Bestellpositionen (Bestellposition kann nicht ohne Bestellung existieren)
Aufgefüllte Raute von Bestellposition (1..*) zu Bestellung (ausgefüllte Raute)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was ist Aggregation in UML?

A

Aggregation:
In einer Vorlesung sind Studierende - ein Student kann auch ohne Vorlesung existieren (leere Raute)
Studierender (5..*) mit Verbindung zur Vorlesung (leere Raute)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie stellt man ein Singleton in UML dar?

A

Siehe Unterlagen.
Klient verwendet Singleton (mit privater Instanz als Member, privatem Konstrukto und einer public Instance() Methode

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was ist das Strategy Pattern?

A

Das Verhalten einer Klasse sollte sich während der Laufzeit verändern (AI Controller)
UML-Diagramm in den Unterlagen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was ist das Composite Pattern?

A

Composites dienen zur Verwaltung von Objekten, die sich als Baum-Struktur darstellen lassen (erlaubt ineinanderstecken von Objekten) -> Dateisystem
UML-Diagramm in den Unterlagen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist das Command Pattern?

A

Kapselung von Befehlen in eigenen Objekten, die sich als Methoden-Paremeter übergeben lassen
Beispiel: Speichern in einem Text-Editor
UML-Diagramm in den Unterlagen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist das Mediator Pattern?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was ist Refactoring?

A

Der Prozess zur Verbesserung der Code Qualität in den Bereichen der…
Lesbarkeit
Geschwindigkeit
keine neuen Features
keine Bugs fixen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist Mob Programming?

A

Gemeinsames arbeiten, gleichzeitiges arbeiten an einem Stück Software auf gemeinsamen Bildschirm (erweiterte Methode von Pair Programming)

17
Q

Was ist das Facade Pattern?

A

Eine Facade bietet ein simples Interface für eine Kollektion zu anderen Klassen, bei dem die Unterklassen nicht sichtbar gemacht werden (Facade versteckt die Unterklassen)

18
Q

Was ist das Visitor Pattern?

A

Spezifisch für API Erweiterungen gedacht - erlaubt Klienten das traversieren aller Objekte in einer Datenstruktur und eine bestimmte Operation auf alle Objekte anzuwenden - simuliert das Hinzufügen einer neuen virtuellen Methode zu einer existierenden Klasse