Frage

Ich habe eine Message-Klasse, die Textnachricht mit Lookup-Tabellen analysiert. Ich erhalte viele Nachrichten erstellen und viele Objekte zerstören, so dachte ich, ich diese Lookup-Tabellen als statische Mitglieder erklären immer wieder die gleichen Tabellen mit den gleichen Werten zu verhindern initialisiert wird.

Ist es der richtige Ansatz oder gibt es geeignetere C ++ Art und Weise?

Danke.

War es hilfreich?

Lösung

Das klingt nach dem richtigen Weg, es zu tun, obwohl ich der Compiler dies zu optimieren erwarten würde. Haben Sie Ihre Anwendung gebenchmarkt und die Tabellen statische Geschwindigkeit hat erklärt, es auf?

Beachten Sie auch, dass, wenn Sie viele große Lookup-Tabellen haben, wird die Leistung steigern, aber die Tabellen im Speicher die ganze Zeit halten sein.

Andere Tipps

Wenn Sie Ihre Nachricht Klassen-Lookup-Informationen teilen, dass es sich lohnen kann Ihre statische Lookups in eine eigene Klasse zu abstrahieren, so dass sie wirklich nur einmal initialisiert werden.

Aber egal, statische Klassenmitglieder sind auf jeden Fall der Weg zu gehen.

Sie können Klassenvariablen, das heißt statisch auf Klassenebene sein. So können sie zu Subklassen zur Verfügung stehen, falls vorhanden, und vielleicht ein bisschen mehr sichtbar, als wenn „versteckt“ als statische lokale Variablen in den einzelnen Methoden.

Ja, alles in Ordnung. Manchmal ist es gut, Lösung: Funktion statisch, die nur einmal erstellt werden. Auch Sie könnten Singleton-Objekt verwenden, aber es hat mehr breite Zugänglichkeit.

Seien Sie vorsichtig, wenn Sie Multi-Threaded-Anwendung haben, und wenn Ihre Lookup-Tabellen Zeiger auf einem anderen Daten enthalten, das früher als diese Tabelle zerstört werden könnte.

ein Singletonmuster Verwendung auch für diese Arbeit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top