2021/11/08/data objects refactoring
Jump to navigation
Jump to search
I'm making some changes to the data objects management system for #Ferreteria v0.5.
at present
Database instantiation is currently done by cDatabase::Instantiate(), which uses an internal static table to look up the cDatabase-descendant to instantiate from a slug returned by cDatabaseSpec->GetTypeString().
I suddenly realized that this makes no sense:
- the cDatabaseSpec-descendant should just return the class it wants to use, from
->GetDatabaseClass() cDatabaseSpeccan instantiate directly, e.g.cMainDBSpec->MakeDatabase().cDatabaseshould be namedcaDatabase, because it is abstract.
TO DO
- rename
cDatabasetocaDatabase - rename
cDatabaseSpectocaDatabaseSpec - replace abstract
caDataSpec->GetTypeString()method withcaDatabaseSpec->GetDatabaseClass() - write
caDatabaseSpec->MakeDatabase()