-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Christoph Knoedlseder
committed
Oct 3, 2024
1 parent
80b4990
commit a3dddea
Showing
2 changed files
with
2 additions
and
8 deletions.
There are no files selected for viewing
2 changes: 1 addition & 1 deletion
2
src/main/resources/de/jsilbereisen/perfumator/i18n/perfumes/copyConstructor_de.properties
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
name=Kopier-Konstruktor | ||
description=Es gibt verschiedene Ansaetze, um Objekte in Java zu kopieren. Die Java Standardbibliothek bietet etwa die "Cloneable" Schnittstelle (Interface) an, welches Klassen implementieren können, um Kopien von sich zu erzeugen. Wie jedoch Joshua Bloch in seinem Buch "Effective Java" (Kapitel 3.4) erklaert, ist beim implementieren dieses Interfaces Vorsicht geboten, da sich im Bezug auf Vererbung mehrere Gefahren verbergen. Er schlaegt daher als saubereren Weg, um Kopien von Objekten zu erzeugen, einen Kopier-Konstruktor vor: ein Konstruktor, der ein Argument desselben Typs nimmt, und welcher dann die Felder der Klasse kopiert ("deep"-copy, also alle veraenderbaren Referenztypen "tief" zu kopieren). Dieser Weg sichert den korrekten Laufzeittyp der Kopie und ist nicht so fehleranfaellig wie "Cloneable" zu implementieren. Obwohl es keine definierte Regel dafuer gibt, markiert das IntelliJ IDEA Plugin "SonarLint" von SonarSource das Implementieren von "Cloneable" ebenso aus diesem Grund als Code Smell. | ||
description=Es gibt verschiedene Ansaetze, um Objekte in Java zu kopieren. Die Java Standardbibliothek bietet etwa die "Cloneable" Schnittstelle (Interface) an, welches Klassen implementieren koennen, um Kopien von sich zu erzeugen. Wie jedoch Joshua Bloch in seinem Buch "Effective Java" (Kapitel 3.4) erklaert, ist beim implementieren dieses Interfaces Vorsicht geboten, da sich im Bezug auf Vererbung mehrere Gefahren verbergen. Er schlaegt daher als saubereren Weg, um Kopien von Objekten zu erzeugen, einen Kopier-Konstruktor vor: ein Konstruktor, der ein Argument desselben Typs nimmt, und welcher dann die Felder der Klasse kopiert ("deep"-copy, also alle veraenderbaren Referenztypen "tief" zu kopieren). Dieser Weg sichert den korrekten Laufzeittyp der Kopie und ist nicht so fehleranfaellig wie "Cloneable" zu implementieren. Obwohl es keine definierte Regel dafuer gibt, markiert das IntelliJ IDEA Plugin "SonarLint" von SonarSource das Implementieren von "Cloneable" ebenso aus diesem Grund als Code Smell. | ||
source#1=J. Bloch: Effective Java, Kap. 3.4 | ||
additionalInformation=Eine andere Option, um "Cloneable" zum Kopieren von Objecten zu vermeiden, waere etwa eine (statische) Kopier-Methode oder ein eigenes Interface, welches einen Kopier-Mechanismus vorschreibt. |
8 changes: 1 addition & 7 deletions
8
...main/resources/de/jsilbereisen/perfumator/i18n/perfumes/useTryWithResources_de.properties
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,2 @@ | ||
name=Ressourcen-Management in Try-catch | ||
description=Um beim Benutzen eines try-catch-statements sicherzustellen, dass benutzte Ressourcen zuverlaessig \ | ||
geschlossen werden,\nbietet Java das \"try-with-resources\" Konstrukt. Dieses zu benutzen ist Best-Practice,\num \ | ||
Ressourcen-Leaks zu vermeiden. Anfaenger begegnen diesem Konstrukt etwa bei ersten Uebungen zum Lesen oder schreiben \ | ||
von Dateien\nund beim Nutzen von I/O Streams. Sie sollten fuer das Nutzen dieses Idioms belohnt werden, da es den \ | ||
geschriebenen Code simplifiziert\nund die Alternative, also nicht-benutzen von Try-with-resources, sie in der Gefahr \ | ||
laesst, dass Ressources nicht geschlossen werden.\nDieses Perfume ist ein Loesungsmuster, inspiriert durch den \ | ||
\"Try-with-resources should be used\" Code Smell von SonarSource. | ||
description=Um beim Benutzen eines try-catch-statements sicherzustellen, dass benutzte Ressourcen zuverlaessig geschlossen werden, bietet Java das \"try-with-resources\" Konstrukt. Dieses zu benutzen ist Best-Practice, um Ressourcen-Leaks zu vermeiden. Anfaenger begegnen diesem Konstrukt etwa bei ersten Uebungen zum Lesen oder schreiben von Dateien\nund beim Nutzen von I/O Streams. Sie sollten fuer das Nutzen dieses Idioms belohnt werden, da es den geschriebenen Code simplifiziert und die Alternative, also nicht-benutzen von Try-with-resources, sie in der Gefahr laesst, dass Ressources nicht geschlossen werden. Dieses Perfume ist ein Loesungsmuster, inspiriert durch den \"Try-with-resources should be used\" Code Smell von SonarSource. |