Sto cercando di creare un bel design (preferibilmente pythonic) per il seguente caso d'uso.
Diciamo che ci sono tre servizi: A, B, C in più posizioni L1, L2, L3, ecc. Ogni servizio fornisce valori diversi, ad es. A restituisce a1, B restituisce b1, C restituisce c1.
L'attività consiste nell'eseguire periodicamente una funzione che recupera questi parametri da tutte le posizioni disponibili, esegue alcuni calcoli matematici (ad esempio, riassume) sui valori dei servizi corrispondenti e scrive i valori calcolati sui servizi in ogni posizione. Cioè.
for l in locations:
as.append(getAfrom(l).get_a())
bs.append(getBfrom(l).get_b())
cs.append(getCfrom(l).get_c())
new_a = calculate(as)
new_b = calculate(bs)
new_c = calculate(cs)
for l in locations:
getAfrom(l).write(new_a)
getBfrom(l).write(new_b)
getCfrom(l).write(new_c)
Il codice precedente lo fa in modo molto diretto (probabilmente non è così male), ma non riesce a ridimensionare se il numero di servizi o parametri aumenta.
Quali modelli di progettazione renderebbero questa soluzione più flessibile, estendibile (più parametri, più servizi)?