Kodierung ist Refaktorierung. Was mit einer tollen Idee beginnt, kann sich in der Zukunft als falsch erweisen. Ein einfaches Beispiel ist der folgende Code:
public class Address {
private String streetName;
private Integer HausNummer;
// Getter und Setter
}
Anfangs mag eine Hausnummer, die als Integer dargestellt wird, eine gute Sache sein, aber das kann sich in Zukunft ändern, wenn Sie
Hausnummern wie '21A' oder '19 4th floor' verarbeiten müssen. Ihre Benutzeroberfläche erwartet jedoch, dass dies ein Integer ist. Ihre Domäne erwartet, dass es sich um einen Integer handelt. Ihre Serviceschicht erwartet, dass es sich um eine Ganzzahl handelt.
Ich denke, Sie verstehen, worauf ich hinaus will. Bis jetzt war es ziemlich mühsam, dies zu refaktorisieren, da Sie einen Integer nicht einfach in einen String umbenennen können. Mit Hilfe der Typenmigration ist dies nun möglich!
public Integer getPersonHouseNumber() {
return adresse.getHausnummer();
}
Wenn Sie den Typ der Hausnummerneigenschaft in der Adressklasse ändern, hat dies folgende Auswirkungen:
public String getPersonHouseNumber() {
return adresse.getHausnummer();
}
Der Typ hat sich also nicht nur in der Klasse Address geändert, sondern in der gesamten Kette der Methodenaufrufe! Das spart viel Zeit beim Refactoring und bedeutet, dass bei einer Änderung der Typen auf der DAO-Ebene diese Änderung automatisch die gesamte Aufrufkette betrifft, zum Beispiel bis zur Ebene der Benutzeroberfläche.
Verfasst von
Erik Pragt
Contact



