Was sind allgemeine Richtlinien oder Faustregeln für die Verwendung eines domänenspezifischen Objekts gegenüber einer einfachen Zeichenfolge oder Zahl?
Beispiele:
- Altersklasse vs Integer?
- Vorname Klasse vs String?
- UniqueID vs String
- PhoneNumber Klasse vs String vs Long?
- DomainName Klasse vs String?
Ich denke, die meisten OOP-Praktiker würden definitiv bestimmte Klassen für PhoneNumber und DomainName angeben. Je mehr Regeln für die Gültigkeit und den Vergleich von Klassen gelten, desto einfacher und sicherer ist es, mit ihnen umzugehen. Aber für die ersten drei gibt es mehr Debatten.
Ich bin noch nie auf eine "Age" -Klasse gestoßen, aber man könnte argumentieren, dass sie sinnvoll ist, da sie nicht negativ sein darf (okay, ich weiß, Sie können für ein negatives Alter argumentieren, aber es ist ein gutes Beispiel dafür, dass sie fast einer primitiven Ganzzahl entspricht).
Zeichenfolge steht häufig für "Vorname", ist jedoch nicht perfekt, da eine leere Zeichenfolge eine gültige Zeichenfolge, jedoch kein gültiger Name ist. Der Vergleich wird normalerweise ohne Berücksichtigung der Groß- und Kleinschreibung durchgeführt. Sicher, es gibt Methoden, um nach Leerzeichen zu suchen, Vergleiche ohne Berücksichtigung der Groß- und Kleinschreibung usw., aber der Verbraucher muss dies tun.
Hängt die Antwort von der Umgebung ab? Ich befasse mich hauptsächlich mit Unternehmens- / hochwertiger Software, die möglicherweise länger als ein Jahrzehnt Bestand hat und gewartet wird.
Vielleicht überdenke ich das, aber ich würde wirklich gerne wissen, ob jemand Regeln hat, wann man Klasse gegen Primitiv wählt.
people may be one or two years older in Asian reckoning than in the western age system
Age
Klasse anstelle einer Ganzzahl, wenn Sie das zusätzliche Verhalten benötigen, das eine solche Klasse bieten würde.