Attribut Telefonnummer - eigene Klasse oder String

D

DrPils

Aktives 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_Sike

Kirby_Sike

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
 
D

DrPils

Aktives 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_Sike

Kirby_Sike

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

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
 
D

DrPils

Aktives 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?
 
L

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.
 
L

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
 
D

DrPils

Aktives 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.
 
T

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
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
BestGoalkeeper 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
P Eigene Knöpfe mit eigenem Listener Java Basics - Anfänger-Themen 5
S Wann existiert eine Instanz (eigene Klasse) Java Basics - Anfänger-Themen 8
T Muss ein Parametertest immer eine eigene Testklasse sein? Java Basics - Anfänger-Themen 3
B Multithreading und eigene Queue entwickeln Java Basics - Anfänger-Themen 3
O GUI: Eigene Fenster "Form"? Java Basics - Anfänger-Themen 13
F Eigene LinkedList - toString Java Basics - Anfänger-Themen 10
O Denkanstöße für eigene Konfigurations-Datei Java Basics - Anfänger-Themen 12
SexyPenny90 Wieso ist diese eigene Equals-Methode schlecht? Java Basics - Anfänger-Themen 17
C eigene Exception Java Basics - Anfänger-Themen 4
M externe JARs in die eigene JAR einbinden Java Basics - Anfänger-Themen 9
V Klassen import - einfaches Umleiten auf eigene Klassen? Java Basics - Anfänger-Themen 8
S Eigene Exception Klasse - fehlender Konstruktor mit String Java Basics - Anfänger-Themen 3
B eigene klasse in listen eintragen Java Basics - Anfänger-Themen 6
A Objekte in eigene Klasse auslagern Java Basics - Anfänger-Themen 2
S [JavaFX 2.1] - Eigene Sprachauswahl? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Anzeige

Neue Themen


Oben