Ogni componente ha più stati possibili e qualsiasi numero di essi può essere attivo alla volta. Alcune combinazioni di stati hanno un valore associato ad esso. In qualsiasi momento, vuole essere in grado di ottenere il miglior valore per gli stati attualmente attivi del componente. Il problema è quando non c'è un valore associato alla combinazione esatta, non riesco a pensare a un modo decente di implementare la ricerca del valore migliore che non sia orribilmente inefficiente. Lascia che te lo dimostri dal momento che potrei non averlo chiarito completamente.
Per un dato componente, ci sono stati possibili A-Z e valori possibili 0-9.
Stato corrente: [A,B,C]
Associazioni valore-stato:
[A,E]=5
[A]=1
[A,C]=3
[B,C]=9
Il valore corretto sarebbe 3 poiché ha il maggior numero di stati comuni e nessun stato non comune. Se due combinazioni di stati sono di uguale somiglianza, come [A, C] e [B, C], idealmente, verrà scelto il primo che verrà definito.
L'unica soluzione a cui potrei pensare è controllare ogni possibile combinazione che potrebbe diventare davvero inefficiente con un numero più elevato di stati.
Vale anche la pena notare che questo è simile alle pseudo classi nei CSS, anche se non sono riuscito a trovare alcuna informazione su come è implementato.