Sto programmando in Python. Ho diversi file XML complicati / difficili da capire che descrivono la struttura di un'elezione. Sto cercando di scrivere un wrapper python che renda più semplice l'accesso a questi dati.
La struttura delle entità che sto cercando di modellare è: c'è un'elezione. Le elezioni hanno corse. Le gare sono composte da candidati che ottengono risultati nelle circoscrizioni. I confini sono organizzati in contee.
L'ho prima creato in modo che la classe di elezione abbia una serie di oggetti razze che contengono matrici di oggetti candidati e oggetti risultato. Ma ora sto iniziando a scrivere test unitari ed è difficile testare i candidati o le gare (perché sono accoppiati con le elezioni).
L'elezione ha informazioni sulle gare, che alimenta il costruttore di ogni razza. La gara ha informazioni sui candidati (vale a dire per cosa stanno correndo), che alimenta ai loro costruttori.
So che è generalmente una buona idea avere classi disaccoppiate, ma in questo caso c'è una gerarchia naturale nel dominio e mi chiedo in quale misura abbia senso che il mio codice rifletta questa gerarchia. L'obiettivo finale è scrivere "risultati" in json (per un'app Web) che sono molto più semplici da analizzare rispetto all'XML. I risultati cambieranno ogni pochi minuti man mano che entrano (su un nuovo file xml di elezione). Mi piacerebbe qualche consiglio di design.