Attribut Telefonnummer - eigene Klasse oder String

DrPils

Bekanntes Mitglied
Moin
Für eine Telefonbuch entwerfe ich eine Klasse Contact, bei dem Attribut phoneNumber stelle ich mir jetzt die Frage ob es guter Stil wäre, diese doch in einer eigene Klasse abzubilden statt einfach nur ein String. Ich finde aber keine Argumente die für das eine oder andere Vorgehen sprechen.

Pro eigene Klasse: Mit der Klasse PhoneNumber könnte ich dort festlegen was eine Telefonummer ist.
Contra String: Mit einem String wäre es erstmal eine Zeichenkette und ich müsste eigentlich dort wo ich sie verwende immer schauen, dass es eine Telefonnummer ist.

Wie würdet ihr das lösen?
 

Kirby.exe

Top Contributor
Naja du könntest es ein eine eigene Klasse auslagern und für die Vorwahl der Telefonnummer ein Enum benutzen :)
Das wäre zu dem auch Hilfreich, da meines Wissens jede Telefonnummer in einer Datenbank des Staats an eine Person geknüpft ist. Dies war früher bei z.B. Prepaid Karten nicht so
 

DrPils

Bekanntes Mitglied
Du kannst die auch aus irgendeiner DB ziehen
Achso
ich möchte es erstmal nicht mit einer DB machen.
Aber das Enum muss doch sowieso geschrieben werden? Also ich kann doch nicht zur Laufzeit ein Enum von einer DB erstellen?

Telefonnummern können sehr komplex werden. Ggf. willst du dir dafür eine Lib anschauen, https://github.com/google/libphonenumber kommt auch mit einer `PhoneNumber` Klasse
Danke schau ich mir mal an. Also eher die eigene Klasse statt den String?
 

Kirby.exe

Top Contributor
Aber das Enum muss doch sowieso geschrieben werden? Also ich kann doch nicht zur Laufzeit ein Enum von einer DB erstellen?
Not really du kannst dir die Vorwahlen direkt per SQL Anfrage holen :
SQL:
SELECT VORWAHL FROM WHATEVER WHERE COUNTRY = 'Germany' and CITY = 'Berlin';
 
Zuletzt bearbeitet:

Thallius

Top Contributor
Telefonnummer sollte vor allem nicht nur eine Klasse oder ein String sein sondern eine Liste davon. Schließlich kann ein Kontakt beliebig viele Telefonnummern besitzen
 

DrPils

Bekanntes Mitglied
Also meine Ursprüngliche Frage war ja ob ich es als eigene Klasse umsetzen soll, nicht wie.
Habe ich das richtig verstanden dass ich es als eigene Klasse umsetzen sollte?
 

LimDul

Top Contributor
Meine Frage: Was ist im Kontext deiner Anwendung eine Telefonnummer? Nur ein String der irgendwo angezeigt werden soll? Oder passieren da fachliche Dinge damit (muss man z.B. feststellen, dass 0049 12345 die gleiche Nummer ist wie +4912345). Muss man die verschiedene Formate normalisieren (0049 => +49). Muss man Landes/Ortsvorwahl ggf. separat anzeigen können? Muss man prüfen können ob ein eingegebener Text eine gültige Telefonummer ist?

Je mehr dieser oder ähnlicher Fragen du mit "JA" beantwortest um so mehr spricht für eine eigene Klasse.
 

LimDul

Top Contributor
Um vielleicht mal zwei Varianten darzustellen aus dem beruflichen Umfeld.

* Ein System was Personen-Stammdaten verwendet um diese zu verwalten mit ihren Kontakt-Information: Hier würde ich für eine Klasse PhoneNumber plädieren
* Ein System was das System für die Personen-Stammdaten anbindet und die Daten die daraus kommen nur zur Anzeige in irgendwelchen Masken nutzt => Hier würde ich die PhoneNumber als String ablegen
 

DrPils

Bekanntes Mitglied
Also es soll einfach ein ganz billiges Telefonbuch werden, wo ich Einträge in einer csv Datei speichern und laden kann.
Die Anzeige erfolgt über eine JavaFX gui.
Normalisierung der Vorwahlen möchte ich umsetzen.
 

thecain

Top Contributor
Aus DDD Sicht macht es sowieso Sinn eine eigene Value Class dafür zu machen. Meiner Meinung nach verlierst durch eine eigene Klasse nichts, hast aber ggf Vorteile bei der Weiterentwicklung
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
berserkerdq2 Wie lege ich ein Attribut comparator an? Java Basics - Anfänger-Themen 13
M Wie kann ich festlegen, dass ein Attribut maximal den Wert 0 erreicht, also nicht in den negativen Bereich fällt? Java Basics - Anfänger-Themen 4
U Wie ein Attribut von einer Klassenmethode in der Klasse speichern= Java Basics - Anfänger-Themen 2
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
C Setter-Methode mit final-Attribut Java Basics - Anfänger-Themen 9
T Inhalt aus TextField in Attribut einer Instanz schreiben Java Basics - Anfänger-Themen 5
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
C Zugriff auf Attribut von Oberklasse Java Basics - Anfänger-Themen 8
itsmejo Erste Schritte Auf Attribut einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 14
N enum Attribut von Objekten einer Hashmap ausgeben Java Basics - Anfänger-Themen 6
X Attribut initialisieren Java Basics - Anfänger-Themen 1
Z Attribut ändern ohne Kontrollstruktur Java Basics - Anfänger-Themen 2
S NIO lesbares und beschreibbares Attribut setzen Java Basics - Anfänger-Themen 1
X Auf Attribut einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 2
H Objekt als Attribut speichern Java Basics - Anfänger-Themen 11
N Fehler bei string Attribut! Java Basics - Anfänger-Themen 18
B Attribut vom Typ einer Klasse? Java Basics - Anfänger-Themen 3
D Klassen Warum wird das Attribut nicht ausgegeben? Java Basics - Anfänger-Themen 8
N Attribut einer anderen Klasse übertragen/verwenden Java Basics - Anfänger-Themen 5
Aprendiendo Zwei Fragen und ein geerbtes "protected"-Attribut Java Basics - Anfänger-Themen 2
S Zugriff auf Attribut einer unbekannten Klasse erhalten Java Basics - Anfänger-Themen 6
N Methoden Attribut Abfrage eines anderen Objektes Java Basics - Anfänger-Themen 36
A Kann man ein Attribut aus einer anderen Klasse nutzen? Java Basics - Anfänger-Themen 3
A Private Attribut aus fremder Klasse lesen ? Java Basics - Anfänger-Themen 19
J Objekt mit Attribut "ansprechen" Java Basics - Anfänger-Themen 7
J Innerhalb Interfacemethode: Interface als Attribut Java Basics - Anfänger-Themen 2
V Attribut aus aus jedem ArrayListen index auf Bildschirm ausgeben Java Basics - Anfänger-Themen 9
W Attribut Werte eines Objekts mit gettern ausgeben Java Basics - Anfänger-Themen 5
C Probleme bei einem Stringvergleich - Attribut "value" unterscheidet sich Java Basics - Anfänger-Themen 9
B Klassenübergreifendes Objekt Attribut Java Basics - Anfänger-Themen 7
P Ausnahme, wenn Attribut nicht definiert Java Basics - Anfänger-Themen 4
V Auf Objektreferenz über Attribut zugreifen Java Basics - Anfänger-Themen 10
M Objekt mit Liste als Attribut seralisieren? Java Basics - Anfänger-Themen 5
S Ein Attribut/Instanz eines bestehendes Objektes mit SETTER Methode ändern Java Basics - Anfänger-Themen 3
R Variablen final String Variable als Attribut veränderbar? Java Basics - Anfänger-Themen 21
V Methoden Zeilen nach bestimmtem Attribut sortieren Java Basics - Anfänger-Themen 4
Blindxantos Datentypen Uhrzeit in einem Attribut speichern Java Basics - Anfänger-Themen 3
H DOM Attribut als ID kennzeichnen Java Basics - Anfänger-Themen 12
L Methoden In einer Klasse ein Attribut aus einer anderen Klasse setzen Java Basics - Anfänger-Themen 8
M JLabel attribut wert zuweisen Java Basics - Anfänger-Themen 2
P Enum Attribut in Konstruktoren Java Basics - Anfänger-Themen 10
C Liste mit Attribut Abstract vererben Java Basics - Anfänger-Themen 11
I Von einer Methode eines Objektes auf Attribut eines Objektes anderer Klasse zugreifen Java Basics - Anfänger-Themen 4
Ollek Collections ArrayList Object - Attribut von dem Object vergleichen Java Basics - Anfänger-Themen 7
M .toString(); // Ausgabe: Attribut von Vaterklasse Java Basics - Anfänger-Themen 12
K OOP Datenkapselung mittels private - length Attribut bei Array Java Basics - Anfänger-Themen 3
K Attribut als Referenz auf Objekt Java Basics - Anfänger-Themen 8
J Variable vs Attribut Java Basics - Anfänger-Themen 4
S Klasse als Attribut implementieren Java Basics - Anfänger-Themen 2
W Maven2 <packaging>jar</packaging> über Attribut auf WAR ändern Java Basics - Anfänger-Themen 5
X Attribut in n Objekten suchen Java Basics - Anfänger-Themen 8
G Objekte mit dem Attribut title mit Comparator sortieren Java Basics - Anfänger-Themen 5
P Objekte als Attribut: Referenz oder Kopie? Java Basics - Anfänger-Themen 3
D Zugriff auf attribut anderer Klasse privat/public? Java Basics - Anfänger-Themen 9
R Suchen nach Attribut Java Basics - Anfänger-Themen 5
S Attribut beim erzuegen eines Objektes automatisch erhöhen Java Basics - Anfänger-Themen 6
? Zugriff auf Attribut einer anderen Klasse Java Basics - Anfänger-Themen 2
M probleme mit array (als attribut einer klasse) Java Basics - Anfänger-Themen 2
W Attribut nur in Unterklasse ändern Java Basics - Anfänger-Themen 10
J Attribut casten Java Basics - Anfänger-Themen 3
I Mehrere Klasseninstanzen ueber Attribut sortieren? Java Basics - Anfänger-Themen 2
J Attribut vom Objekt einer eigenen Klasse setzen Java Basics - Anfänger-Themen 6
megachucky wie bekomm ich ein private attribut aus einer andren klasse? Java Basics - Anfänger-Themen 18
J Wie greife ich vonEvent-Handler auf Attribut einer Klasse zu Java Basics - Anfänger-Themen 5
Amina556 Eigene Klasse definieren Java Basics - Anfänger-Themen 9
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
T Datentypen Eigene Datentypen Java Basics - Anfänger-Themen 15
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
C Archiv für eigene Klassen Java Basics - Anfänger-Themen 9
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
B JUnit 4: Wie man die eigene Liste testen kann [TDD] Java Basics - Anfänger-Themen 46
C eigene Methoden erstellen (Instanzmethoden) Java Basics - Anfänger-Themen 7
S Eigene LinkedList Klasse Java Basics - Anfänger-Themen 4
I Eigene Java Tools Nutzung Java Basics - Anfänger-Themen 6
G eigene Bibliothek einbinden Java Basics - Anfänger-Themen 1
K Eigene Annotations, Pre-/Post-/Call-Method Java Basics - Anfänger-Themen 6
O Erste Schritte Eigene charAt(i) Methode schreiben Java Basics - Anfänger-Themen 10
D Methoden Eigene Methode um alle Ausgaben aufzurufen Java Basics - Anfänger-Themen 17
L Eigene Exception schreiben bei zu langem Array Java Basics - Anfänger-Themen 10
P Maven und eigene Jars Java Basics - Anfänger-Themen 4
J Algorithmus - Strings auf eigene Reihenfolge miteinander vergleichen Java Basics - Anfänger-Themen 4
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
A Eigene Methoden entwicken Java Basics - Anfänger-Themen 3
F Klassen Eigene Exception Bedingungen festlegen Java Basics - Anfänger-Themen 2
H GSON-Bibliothek für eigene Programme benutzen Java Basics - Anfänger-Themen 2
H Klassen auf eigene Klasse zugreifen Java Basics - Anfänger-Themen 2
N Eclipse - eigene Icons unter ClassPath Resource Java Basics - Anfänger-Themen 0
N Eigene Stream Methoden implementieren Java Basics - Anfänger-Themen 3
R eigene Graphikbedienelemente Java Basics - Anfänger-Themen 8
V Generics / eigene Liste Java Basics - Anfänger-Themen 4
T Eigene Bedingung in IF-Bedingung Java Basics - Anfänger-Themen 22
P Java 8 & Eigene Applets Java Basics - Anfänger-Themen 3
E Best Practice Exaktes Rechnen mit (Pseudo-)Rationalen/Realen Zahlen. Operations Zuweisung für (eigene) Klassen Java Basics - Anfänger-Themen 3
G eigene Bibliothek in Java importieren Java Basics - Anfänger-Themen 5
D Klassen Eigene Klasse für ArrayList Java Basics - Anfänger-Themen 6
M Wann eigene implementierte HashCode Methode zwingend erforderlich? Java Basics - Anfänger-Themen 1
B Klassen Eigene "non static" Klasse in Main verwenden! Java Basics - Anfänger-Themen 12
P Vererbung Eigene HashMap Variante Java Basics - Anfänger-Themen 2
J Eigene Klasse für die Variablen? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben