Ich schreibe grad an nem C++ Programm.
Unter anderem wird da eine "Datenbank" verwaltet, die global irgendwo
rumfliegt.
Diese Datenbank ist im Prinzip nur ein Vector, der die einzelnen
Einträge zusammenfasst:
1 | std::vector<DatabaseEntry>;
|
Mir stellt sich nun die Frage ob es sinn macht, diesen globalen Vektor
zu kapseln, nach dem Motto:
1 | class Database
|
2 | {
|
3 | std::vector<DatabaseEntry>;
|
4 | ...
|
5 | //public interface
|
6 | ...
|
7 | }
|
Bin mir da nicht sicher ob es guter Stil ist, den "Anwender" der
Datensätze direkt an die Implementierung der Datenbank ranzulassen (auch
wenn der Anwender nur ich selbst bin) oder ob eine Kapselung Sinn macht.
Nachteil ist eben der Aufwand, ich muss einige Zugriffsfunktionen
"durchschleifen", z.B. um Einträge hinzuzufügen.
Die Datenbank soll auch mittels boost serialisiert und abgespeichert
werden. Grade da fände ich es schick, wenn der Anwender nur schreiben
könnte
anstatt selbst die Details der boost::serialization lib kennen zu
müssen.
Selbiges Problem hab ich eigentlich recht oft, wenn Daten global
verfügbar sein sollen.
Wie würdet ihr vorgehen?