Dies hängt in hohem Maße von dem Vertrag ab, den Sie mit Ihrer get () - Methode durchsetzen möchten. Gemäß den Design-by-Contract-Konventionen muss der Anrufer sicherstellen, dass die Voraussetzungen erfüllt sind (was bedeutet, dass eine Validierung in einer Setter-Methode häufig ein schlechtes Design ist) und der Angerufene (ich weiß nicht, ob dies der richtige englische Begriff für ist) das, dh der Angerufene) stellt sicher, dass die Post-Bedingungen erfüllt sind.
Wenn Sie Ihren Vertrag so definieren, dass die Methode get () - das Objekt nicht ändern darf, brechen Sie Ihren eigenen Vertrag. Denken Sie darüber nach, eine Methode wie zu implementieren
public isValid() {
return (this.myvalue == null || this.myvalue.isEmpty());
}
Der Vorteil dieses Ansatzes besteht darin, dass Sie nicht überprüfen müssen, ob die Rückgabe von get () "N / A" oder etwas anderes ist. Dies kann auch vor dem Aufruf von set () aufgerufen werden, um zu überprüfen, ob Sie keine unzulässigen Werte in Ihr Objekt einfügen.
Wenn Sie einen Standardwert festlegen möchten, sollten Sie dies während der Initialisierung tun.