Einer der Ratschläge von Joshua Bloch ist, dass Klasse sollte als unveränderlich gestaltet werden.Unveränderbare Klasse Design
ich die folgende Klasse haben
public class Dividend {
public Dividend setDate(SimpleDate date) {
Dividend dividend = new Dividend(this.getStock(), this.getAmount(), date);
return dividend;
}
.....// More to go.
Für setDate Methode dieses Objekt wird nicht verändert werden.
Stattdessen wird eine Kopie des dieses mit seinem Datumsfeld, das geändert wird, zurückgegeben.
Allerdings, durch die Beurteilung von der Methode Name, wie wird der Benutzer wissen dieses Objekt wird immer noch unveränderlich bleiben?
Gibt es eine bessere Namenskonvention neben setDate?
Hat die Klasse 'Divident' eine Methode' setComment', die das Objekt modifiziert? Dann ist es nicht unveränderlich. – Jesper
Wenn Ihre setComment-Methode privat ist, ist nur diese Klasse unveränderlich. – Gopi
Anstelle von 'setDate' können Sie Dinge wie' onDate'/'withDate' /' forDate' usw. ausprobieren. – polygenelubricants