Nehmen wir an, ich habe eine einfache Klasse namens WebsterDictionary
, die eine Funktion hat, die ein Wort nehmen und ihre Definition zurückgeben kann. Vielleicht gibt es eine andere Funktion, die eine Definition nehmen und ein Wort zurückgeben kann. Die Klasse wird ständig von vielen Clients verwendet.Ist eine statische Klasse geeignet, wenn der Status unveränderlich ist?
Um die Suche zu erleichtern, enthält die Klasse eine Mitgliedsvariable, die ein In-Memory-Dictionary ist, das die Wörter und ihre zugeordneten Definitionen speichert. Angenommen, das Wörterbuch kann sich niemals ändern, sobald es initialisiert wurde - es ist konstant und würde nicht über Instanzen hinweg variieren.
Ist dies ein guter Kandidat für die statische Klasse? Ich habe gelesen, dass statische Klassen zustandslos sein sollten ... aber diese Klasse hat einen Zustand (das In-Memory-Wörterbuch) oder?
EDIT: Auch wenn dies eine statische Klasse wird, wann initialisiere ich das Dictionary, da es kein Konstruktor mehr sein würde? Prüfe ich bei jedem Aufruf einer der statischen Methoden, ob der Verweis auf das Dictionary null ist?
Danke.
nein ... kein Grund, es Singleton zu machen. Übergeben Sie es einfach an denjenigen, der es braucht. Es ist flexibler –