Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| de:modul:ffit:3-jahr:java:learningunits:lu05:b [2025/09/15 12:53] – apeter | de:modul:ffit:3-jahr:java:learningunits:lu05:b [2025/09/16 06:46] (aktuell) – apeter | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== LU05b - Prinzipien 2 (LSP, ISP) ====== | ====== LU05b - Prinzipien 2 (LSP, ISP) ====== | ||
| - | ==== Prinzipien ==== | + | ===== Prinzipien |
| * //DRY (Don’t Repeat Yourself)// | * //DRY (Don’t Repeat Yourself)// | ||
| Zeile 18: | Zeile 18: | ||
| Wir fokussieren uns dieses Mal auf **LSP** und **ISP**. | Wir fokussieren uns dieses Mal auf **LSP** und **ISP**. | ||
| - | === LSP === | + | ==== LSP ==== |
| Das Liskov Substitution Principle besagt, dass ein Programm, das Objekte einer Basisklasse T verwendet, auch mit Objekten der davon abgeleiteten Klasse S korrekt funktionieren muss, ohne dabei das Programm zu verändern. | Das Liskov Substitution Principle besagt, dass ein Programm, das Objekte einer Basisklasse T verwendet, auch mit Objekten der davon abgeleiteten Klasse S korrekt funktionieren muss, ohne dabei das Programm zu verändern. | ||
| Folgendes Beispiel verletzt das LSP, weil ein Kreis zwar eine Spezialform einer Ellipse ist, aber in diesem Fall nicht mit den Eigenschaften der Klasse '' | Folgendes Beispiel verletzt das LSP, weil ein Kreis zwar eine Spezialform einer Ellipse ist, aber in diesem Fall nicht mit den Eigenschaften der Klasse '' | ||
| + | |||
| {{: | {{: | ||
| Besser wäre es die Klasse '' | Besser wäre es die Klasse '' | ||
| - | === ISP === | + | ==== ISP ==== |
| - | Das Interface Segregation Principle besagt, dass Interfaces nur logisch untrennbare Methoden vorgeben sollten. Das heisst in diesem Beispiel, die Methoden '' | + | Das Interface Segregation Principle besagt, dass Interfaces nur logisch untrennbare Methoden vorgeben sollten. Das heisst in diesem Beispiel, die Methoden '' |
| {{: | {{: | ||
| - | Ist dies nicht der Fall, so sollte man die Interfaces aufteilen. Dadurch können zukünftige Klassen nur einzelne Interfaces implementieren und sind nicht gezwungen irgendwelche Dummy-Implementierungen zu erstellen. | + | Ist dies nicht der Fall, so sollte man die Interfaces aufteilen. Dadurch können zukünftige Klassen nur einzelne Interfaces implementieren und sind nicht gezwungen irgendwelche Dummy-Implementierungen zu erstellen. |
| {{: | {{: | ||