Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
de:modul:ffit:3-jahr:java:learningunits:lu05:b [2025/09/15 11:02] – angelegt apeter | de:modul:ffit:3-jahr:java:learningunits:lu05:b [2025/09/16 06:46] (aktuell) – apeter | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== LU05b - Prinzipien | + | ====== LU05b - Prinzipien |
- | ==== Prinzipien ==== | + | ===== Prinzipien |
* //DRY (Don’t Repeat Yourself)// | * //DRY (Don’t Repeat Yourself)// | ||
Zeile 16: | Zeile 16: | ||
SOLID steht wiederum für SRP, OCP, LSP, ISP, DIP | SOLID steht wiederum für SRP, OCP, LSP, ISP, DIP | ||
- | Wir fokussieren uns erstmal | + | Wir fokussieren uns dieses Mal auf **LSP** und **ISP**. |
- | === DRY === | + | ==== LSP ==== |
- | Code ist viel simpler art- und erweiterbar, wenn man nur eine einzige Stelle anpassen | + | Das Liskov Substitution Principle besagt, dass ein Programm, das Objekte einer Basisklasse T verwendet, auch mit Objekten der davon abgeleiteten Klasse S korrekt funktionieren |
- | Wenn Sie zum Beispiel | + | Folgendes |
- | < | + | {{: |
- | Connection conn = DriverManager.getConnection(URL, | + | |
- | </ | + | |
- | <code java> | + | Besser wäre es die Klasse '' |
- | public class Database { | + | |
- | private static final String URL = Config.get(" | + | |
- | private static final String USER = Config.get(" | + | |
- | private static final String PASSWORD = Config.get(" | + | |
- | public static Connection getConnection() throws SQLException { | + | ==== ISP ==== |
- | | + | Das Interface Segregation Principle besagt, dass Interfaces nur logisch untrennbare Methoden vorgeben sollten. Das heisst in diesem Beispiel, die Methoden '' |
- | } | + | |
- | } | + | |
- | </ | + | |
- | Kontrollieren Sie Ihren Code hinsichtlich dieses Prinzips und korrigieren Sie bei Bedarf. | + | {{: |
- | === SRP === | + | Ist dies nicht der Fall, so sollte |
- | Jede Klasse | + | |
- | Kontrollieren Sie Ihren Code hinsichtlich dieses Prinzips und korrigieren Sie bei Bedarf. | + | {{: |
- | Ein möglicher Aufbau der Klassen könnte folgendermassen aussehen. | ||
- | {{: |