Come esercizio di apprendimento (non sono a scuola - solo un vecchio che cerca di imparare qualcosa di nuovo), sto cercando di scrivere una simulazione del gate logico che incorpori il ritardo di propagazione. L'utente dovrebbe anche essere in grado di raggruppare le porte per creare oggetti di livello superiore.
Voglio applicare modelli di progettazione al mio problema, ma sto avendo difficoltà.
Sto leggendo Head First Design Patterns e vedo che il modello Command è un buon modo per simulare gli impulsi elettrici attraverso un circuito con un ritardo. Vedo anche che il modello Composito è un buon modo per simulare unità nidificate. Semplicemente non so come mescolare i due.
In altre parole, mentre attraverso le porte, vedo che il cancello "x" dovrebbe sparare. Ha un ritardo di 15 nanosecondi, quindi creo un comando con un timestamp di 15 ns dal tempo di gioco corrente. Dov'è lo spedizioniere? Nell'esempio del commensale, con il comando "Ordine", la cameriera e il cuoco inviano ciascuno il comando e hanno la possibilità di introdurre un ritardo. Se ho un gate "composito", ha anche un proprio dispatcher? Devo usare un Singleton per gestire la coda?
Ho letto quello che sono riuscito a trovare, ma ho ancora bisogno di una spinta nella giusta direzione: