Lektion 70:Die Klasse DictionaryWie bereits erwähnt, soll die Klasse Dictionary bestimmten Werten andere Werte zuordnen. Gute Beispiele dafür sind Wörterbücher oder Telefonbücher. Es werden also Paare, bestehend aus Schlüssel und Wert (z.B. Name und Telefonnummer) abgespeichert. Der erste Ansatz der Klasse Dictionary sieht also so aus:
Zum Testen könnte man folgende main-Funktion verwenden:
Die Funktionsweise der Klasse Dictionary ist recht einfach. Sie ist eigentlich nur ein SortedArray, das Paare aus Schlüssel und Wert verwaltet. Die Sortierung geschieht nur nach dem Schlüssel. Dafür wird ein geeigneter Comparator sorgen. Die Klasse Dictionary ist also eine sehr einfache Klasse. Das liegt daran, daß die Klasse SortedArray so mächtig ist. Das einzige, worauf Sie achten müssen, ist bei den vielen Template-Verschachtelungen keinen Lachkrampf zu bekommen. Für die Paare wird eine eigene Klasse gebildet.
Beachten Sie das const. Es soll dafür sorgen, daß kein Benutzer der Klasse den Schlüssel nachträglich verändern kann, weil das die Sortierung durcheinander bringen würde. Der Wert (z.B. die Telefonnummer) kann beliebig verändert werden, weil er mit der Sortierung nichts zu tun hat. Der Comparator ist auch nicht schwierig.
Mit allem Notwendigen ausgerüstet, kann jetzt an der Klasse Dictionary weitergearbeitet werden. Sie braucht als Attribut ein SortedArray, das als Werte DictionaryEntries verwaltet und als Comparator einen DictionaryEntryComparator verwendet.
Weil die Zeile etwas lang geworden ist, habe ich sie auf fünf Zeilen aufgeteilt. Eigentlich ist das nur eine Zeile. Die eigenen Methoden in der Klasse Dictionary beschränken sich darauf, die entsprechenden Methoden der Klasse SortedArray aufzurufen.
Bis auf ein paar kleine Fehler, die alle mit dem Wort const zusammenhängen ist damit die Klasse Dictionary schon einsetzbar. Das war doch ein toller Spaß mit Templates! Falls Ihnen Fehler im Text auffallen oder Sie Verbesserungsvorschläge haben, dann schicken Sie mir bitte eine Mail. Ich werde mich dann sofort darum kümmern. [aktuelle Version] [inhalt] [index] [Fehlerkorrektur, Verbesserungsvorschlag] © Volkard Henkel <volkard@normannia.de>, last update: 08/25/00 |