Einführung in das Software Engineering
Kapitel 2: Prinzipien des objektiven Designs
Fragen
Welche Aussage beschreibt das Open-Closed Principle (OCP) korrekt?
Frage-ID: 53- Software-Entitäten sollten offen für Erweiterungen, aber geschlossen für Modifikationen sein.
- Eine Klasse darf mehrere Verantwortlichkeiten übernehmen, solange sie in einem Modul gekapselt sind.
- Module höherer Ebenen sollten direkt von Implementierungsdetails niedrigerer Ebenen abhängen.
- Clients sollten gezwungen werden, alle Methoden eines Interfaces zu implementieren, um Konsistenz zu gewährleisten.
Was besagt das Single Responsibility Principle (SRP) im Kontext der objektorientierten Programmierung?
Frage-ID: 54- Eine Klasse oder ein Modul sollte nur einen einzigen Grund haben, sich zu ändern.
- Klassen sollten keine Abhängigkeiten zu anderen Modulen besitzen.
- Code sollte so geschrieben sein, dass er keine Schnittstellen (Interfaces) benötigt.
- Methoden sollten ihre Funktionalität über mehrere Klassen hinweg verteilen.
Welches der SOLID-Prinzipien besagt, dass Module höherer Ebenen nicht von Modulen niedrigerer Ebenen abhängen sollten, sondern beide von Abstraktionen?
Frage-ID: 55- Dependency Inversion Principle (DIP)
- Interface Segregation Principle (ISP)
- Liskov Substitution Principle (LSP)
- Single Responsibility Principle (SRP)
Was ist das Hauptziel des Interface Segregation Principle (ISP)?
Frage-ID: 56- Die Aufteilung einer großen Schnittstelle in viele kleine, spezifische Interfaces, um unnötige Abhängigkeiten zu vermeiden.
- Die Sicherstellung, dass Subtypen jederzeit durch ihre Basistypen ersetzt werden können.
- Die strikte Trennung von Datenmodell und Benutzeroberfläche in einer Klasse.
- Das Verbot, dass abstrakte Klassen von konkreten Implementierungen abhängen.
Was besagt das Liskov Substitution Principle (LSP) im Kontext der objektorientierten Programmierung?
Frage-ID: 57- Subtypen müssen sich so verhalten, dass sie jederzeit durch ihre Basistypen ersetzt werden können, ohne das Programmverhalten zu korrumpieren.
- Eine Klasse darf nur Methoden enthalten, die ausschließlich auf ihren eigenen Attributen operieren.
- Abstrakte Klassen sollten bevorzugt gegenüber Interfaces verwendet werden, um die Wiederverwendbarkeit zu maximieren.
- Methoden innerhalb einer Klasse müssen zwingend alle ihre Instanzvariablen nutzen, um die Kopplung zu minimieren.