Der String ist kein Datentyp

In einem Projekt Ende der 90er Jahre sagt mir mal ein geschätzter Kollege, der im Wesentlichen in der IBM Hostwelt zu Hause war zum Datentyp String: „Manfred, 90% der Programmierung ist doch eh‘ Zeichenkettenverarbeitung.“

Tatsächlich ist man schnell dabei einen Datentyp als String zu identifizieren: Einen Namen, einen Vornamen … aber wie ist das aus mit einer Rechnungsnummer, eine Lieferscheinnummer etc.

Tatsächlich ist ein String nicht wirklich ein „Datenentyp“, denn ein Datentyp sollte einen Wertebereich haben und sollte auch Constraints beinhalten. Wie ist der Wertebereich eines Strings?

Und, meistens meint man ja auch gar nicht eine „beliebige Zeichenkette“. Habe ich ein Attribut mit dem Typ String, dann sollte die Eingabe von „Hallo Welt“ als Wert dieses Strings valide sein. Ist das Attribut ein Kommentar, wird das auch immer der Fall sein. Wie ist das aber jetzt bei der oben genannten Rechnungsnummer.

Der §14 UStG sieht vor, dass jede Rechnung eine „fortlaufende Nummer mit einer oder mehreren Zahlenreihen [enthalten muss], die zur Identifizierung der Rechnung vom Rechnungsaussteller einmalig vergeben wird (Rechnungsnummer)“.

Das hört sich nicht nach „Hallo Welt“ an, sondern nach einem Datentyp Rechnungsnummer, der bestimmte Constraints hat, unter anderem eine fortlaufende Nummer.

Auch sah ich jüngst eine API, in der GUI Eigenschaften etwa wie folgt notiert wurden:

Window win = new Window("enabled=true, visible=true");

Die API erwartet einen String.

Fazit: Strings sollten in der Objektmodellierung als Attribute nur sehr sparsam verwendet werden. Es sollte einen Datentyp AnyCharacter geben, der dann auch genau beschreibt, was er beinhalten darf: Eine beliebige Zeichenkette. Sobald die Zeichenkette Semantik enthält, taugt sie nicht mehr zum String.

Facebooktwittergoogle_plusredditpinterestlinkedinmail

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

%d Bloggern gefällt das: