Como ejercicio de aprendizaje (no estoy en la escuela, solo soy un viejo tratando de aprender algo nuevo), estoy tratando de escribir una simulación de puerta lógica que incorpore el retraso de propagación. El usuario también debe poder agrupar puertas para crear objetos de nivel superior.
Quiero aplicar patrones de diseño a mi problema, pero estoy teniendo dificultades.
Estoy leyendo los patrones de diseño de Head First , y veo que el patrón de comandos es una buena forma de simular impulsos eléctricos a través de un circuito con un retraso. También veo que el patrón compuesto es una buena forma de simular unidades anidadas. Simplemente no sé cómo mezclar los dos.
En otras palabras, cuando paso por mis puertas, veo que la puerta 'x' debería dispararse. Tiene un retraso de 15 nanosegundos, por lo que creo un comando con una marca de tiempo de 15 ns del tiempo de juego actual. ¿Dónde está el despachador? En el ejemplo del comensal, siendo el comando la 'Orden', la camarera y el cocinero envían el comando y tienen la opción de introducir un retraso. Si tengo una puerta 'compuesta', ¿también tiene su propio despachador? ¿Necesito usar un Singleton para administrar la cola?
Leí lo que pude encontrar, pero todavía necesito un empujón en la dirección correcta: