Software Engineering Flashcards
Was bedeuetet SOLID?
Single-Responsibility Open-Closed Liskov Substitution Interface Segregation Dependency Inversion
Single-Responsibility
Eine Klasse sollte nur einen Job erledigen müssen um dem Aufwand einer Änderung minimal zu halten
Open-Closed
Objekte sollten offen für Erweiterungen aber geschlossen für Modifikationen sein
Liskov Substitution
Eine Unterklasse sollte mind. genau soviel können wie seine Oberklasse.
Interface Segregation
Ein Client sollte kein Interface implementieren, dessen Funktionen es nicht benutzt. Aufteilung in mehrere Interfaces.
Dependency Inversion
High-Level Module sollten nicht von Low-Level Modulen abhängig sein, stattdessen von Abstraktionen.
Was ist Design by Contract?
Vorbedingung: Der Aufrufende muss sicherstellen, dass die Vorbedingungen erfüllt sind.
Nachbedingungen: Der Service muss sicher stellen dass die Nachbedingungen anhand der Vorbedingungen erfüllt sind.
Invariant: Der Invariant muss vor und nach dem Aufruf erfüllt sein.
Observer Pattern
Das Observable informiert alle Observer, wenn sich einer dieser geändert hat. Befindet sich auf Ebene 0 (Layer 0)
Command Pattern
Undo/Redo, Logging, Queue. Kommandos als Objekte
Strategy-Pattern
Das Strategy Design Pattern ermöglicht einer Klasse das flexible Wechseln von alternativen Verhalten
State Pattern
Erlaube einem Objekt sein Verhalten anhand von seinem inneren Zustand zu ändern
Singleton
Erlaube genau eine Instanz dieses Objekts. getInstance() Methode
Factory-Method
Das Factory Method Entwurfsmuster dient der Entkopplung des Clients von der konkreten Instanziierung einer Klasse
Abstract Factory Pattern
Das Abstract Factory Design Pattern dient der Definition einer zusammenhängenden Familie aus Produkten
Decorator Pattern
Das Decorator Design Pattern ermöglicht es, einem Objekt dynamisch neues Verhalten hinzuzufügen