En tant qu'exercice d'apprentissage (je ne suis pas à l'école - juste un vieil homme essayant d'apprendre quelque chose de nouveau), j'essaie d'écrire une simulation de porte logique qui incorpore le retard de propagation. L'utilisateur doit également pouvoir regrouper les portes pour créer des objets de niveau supérieur.
Je veux appliquer des modèles de conception à mon problème, mais j'ai du mal.
Je lis les modèles de conception Head First et je vois que le modèle de commande est un bon moyen de simuler des impulsions électriques à travers un circuit avec un retard. Je vois également que le motif composite est un bon moyen de simuler des unités imbriquées. Je ne sais juste pas comment mélanger les deux.
En d'autres termes, en parcourant mes portes, je vois que la porte «x» devrait se déclencher. Il a un retard de 15 nanosecondes, donc je crée une commande avec un horodatage de 15 ns à partir du temps de jeu actuel. Où est le répartiteur? Dans l'exemple du dîner, la commande étant l '«Ordre», la serveuse et le cuisinier envoient chacun la commande et ont la possibilité d'introduire un délai. Si j'ai une porte «composite», a-t-elle aussi son propre répartiteur? Dois-je utiliser un Singleton pour gérer la file d'attente?
J'ai lu ce que j'ai pu trouver, mais j'ai encore besoin d'un coup de pouce dans la bonne direction: