Diciamo che ho una struttura come sotto
typedef struct {
int v1;
string v2;
long v3;
string v4;
} mystruct;
Ora devo memorizzare questa struttura per poter essere interrogata da uno qualsiasi dei suoi elementi. Quindi ho 4 mappe che memorizzano il puntatore condiviso della struct come valore e le chiavi sono v1, v2, v3 e v4.
Ora per interrogare la struttura ho due approcci a cui riesco a pensare
Avere una sola API in cui si passa la struct con una delle chiavi compilate e un tipo di query passato dall'utente, ad es.
typedef enum {
query_type_V1,
query_type_V2,
query_type_V3
} query_type_t;
mustruct m;
m.v1 = 100;
bool get_mystruct(&m,query_type_V1);
Un altro approccio è quello di avere tre diversi apis per ogni tipo di valore, per esempio.
bool get_mystruct_from_v1(mystruct *m);
bool get_mystruct_from_v2(mystruct *m);
bool get_mystruct_from_v3(mystruct *m);
Qual è il design migliore e perché?