Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:modul:ffit:3-jahr:java:learningunits:lu16:b [2026/01/06 01:02] apeterde:modul:ffit:3-jahr:java:learningunits:lu16:b [2026/01/06 10:08] (aktuell) apeter
Zeile 22: Zeile 22:
 Das Open/Closed Principle besagt, dass ein Programm, zwar offen sein soll für (sinnvolle) Weiterentwicklung, aber geschlossen für Änderungen (Manipulationen). Das Open/Closed Principle besagt, dass ein Programm, zwar offen sein soll für (sinnvolle) Weiterentwicklung, aber geschlossen für Änderungen (Manipulationen).
  
-Als Faustregel kann man Klassen tendenziell schliessen, während Interfaces geöffnet werden. Der Modifier ''public'' sollte bei Klassen also sparsam eingesetzt werden, während ''final'' bei vielen Implementierungsklassen in Frage kommt.+Schlecht wäre in diese Hinsicht zum Beispiel ein zentrales Switch-Case-Konstrukt, welches man laufend ergänzen muss, wenn man die Applikation erweitert. 
 + 
 +Als Faustregel kann man Klassen tendenziell schliessen, während Interfaces geöffnet werden. Der Modifier ''public'' sollte bei Klassen also sparsam eingesetzt werden, während ''final'' bei vielen Implementierungsklassen in Frage kommt. (Bei einer Klasse mit ''final'' können keine anderen Klassen erben.)
  
 Der Modifier ''protected'' bei Klassenattributen ist oft ein Indiz für eine Offenheit gegenüber Änderungen via Vererbung. Sie sollten daher immer kritisch hinterfragt werden. Der Modifier ''protected'' bei Klassenattributen ist oft ein Indiz für eine Offenheit gegenüber Änderungen via Vererbung. Sie sollten daher immer kritisch hinterfragt werden.
Zeile 29: Zeile 31:
  
 Das Law of Demeter sagt aus, dass Objekte lediglich mit seinen unmittelbaren Abhängigkeiten interagieren sollte. Das Law of Demeter sagt aus, dass Objekte lediglich mit seinen unmittelbaren Abhängigkeiten interagieren sollte.
 +
 +Ein konkretes Beispiel finden Sie auf https://luiskueng.com/5-Publish/Blog/Clean+Code/Prinzipien+OO-Design/Law+of+Demeter
 +
 Ein starkes Indiz, dass dieses Prinzip verletzt wurde sind (lange) Getter-Ketten. Ein starkes Indiz, dass dieses Prinzip verletzt wurde sind (lange) Getter-Ketten.
  
Zeile 34: Zeile 39:
 customer.getCart().getItems().get(0).getProduct().getPrice(); customer.getCart().getItems().get(0).getProduct().getPrice();
 </code> </code>
 +
 +Solche Fälle sollten in mehrere kleinere Methoden in ihren jeweiligen Entitäten aufgeteilt werden, so dass keine Klasse alle Entitäten der Kette kennen muss.
  • de/modul/ffit/3-jahr/java/learningunits/lu16/b.1767657775.txt.gz
  • Zuletzt geändert: 2026/01/06 01:02
  • von apeter