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()