In un modulo orientato agli oggetti che descrive un database, dovrei passare le strutture dati di descrizione del DB al costruttore nei costruttori delle classi derivate, o dovrei invece creare metodi ("virtuali" che sono dinamici) che creano le strutture dati e chiamano li nel costruttore?
Queste strutture dati sono lunghe (circa 100 array di elementi).
Segue un esempio Python:
class Base:
def __init__(data_desciption):
self.data_desciption = data_desciption
vs
class Base:
def __init__():
self.data_desciption = self.data_desciption_init()
o in C ++:
class Base {
DataDescription data;
public:
Base(DataDescription &data_description) {
data = data_description;
}
};
vs
class Base {
DataDescription data;
protected:
virtual DataDescription &get_data_description() = 0;
public:
Base() {
data = get_data_description();
}
};
(probabilmente non ottimizzato per la velocità, ma ora è irrilevante). (Oh, ho dimenticato che i costruttori di C ++ non possono chiamare funzioni pure virtuali, non usate C ++ per molto tempo, ma questo non cambia l'essenza della mia domanda).
In effetti ora sto programmando in Perl.