Modèle de conception – Modèle de conception de commande Simplifié

Il existe de nombreuses explications de modèle de commande, mais j’ai trouvé un peu difficile de digérer ou de comprendre l’exemple fourni dans ces blogs / articles.
Donc, ici, je vais essayer d’expliquer de la manière que j’ai comprise.

Pour comprendre le modèle de commande, revenons aux années 1990 lorsque nous avions d’énormes téléviseurs sans télécommande (du moins en Inde). Bon vieux temps 😉

Nous avions tous les boutons pour on / off, augmenter / diminuer les volumes.

Tout était bon, fonctionnait bien, le seul problème était que si quelqu’un voulait allumer / éteindre le téléviseur ou réduire / augmenter le volume, il devait aller jusqu’au téléviseur et utiliser le bouton.

Maintenant, pensez à cela de manière orientée objet. Un téléviseur est un objet qui a un tas d’opérations / méthodes / fonctions ou « Commande ». Nous accédons directement à l’objet TV pour appeler ces commandes.

Le problème avec cette approche?

  1. Vous avez besoin de l’objet pour appeler une commande — marchez donc jusqu’au téléviseur
  2. Chaque téléviseur a sa propre implémentation de start / stop et nous ne sommes pas en mesure de réutiliser la « Commande invocation »
  3. Si un autre appareil dit « Décodeur » veut la même fonctionnalité, aucun moyen de réutiliser les mêmes opérations – « Télécommande universelle »

Comment pouvons-nous résoudre cela?

Imaginez que le téléviseur dispose d’une interface qui implémente on / off et d’autres fonctionnalités et expose ces méthodes /opérations, en donnant l’instance de l’interface à un « autre objet ». Cela pourrait résoudre notre problème. Entrons dans le code:

Tout d’abord, nous allons créer une classe TV, qui a les opérations activées / désactivées.

iDevice.java
TÉLÉ.java

De même, nous allons créer une classe de décodeurs comme nous créons une télécommande universelle.

Boîte de réglage.java

Maintenant que nous avons défini nos périphériques et ses opérations, nous avons besoin d’une classe (Commande) qui peut conserver les objets de TV / SetTopBox et appeler ces opérations.

Créons notre classe de commande. Comme nous voulons effectuer deux opérations sur ces périphériques, la classe de commande « aura » un objet de type iDevice.
Nous avons besoin de deux commandes « ON » et « OFF ».
Ces objets de commande On / Off auront une fonction / méthode d’exécution, qui invoquera l’opération respective sur le périphérique dont elle dispose.

Si vous l’avez remarqué, j’ai créé les classes avec le nom « OnCommad » et non « TVOnCommand ». L’idée est de réutiliser la classe de commande pour différents appareils. C’est notre commande universelle, qui prend en charge n’importe quel appareil.
Cela nous permettra de créer une télécommande universelle. Bingo !!!!

Jusqu’à présent, nous avons résumé les opérations de l’appareil sous la forme de « Commande ». La seule chose qui nous reste est de créer un remotecontrôle, pour déclencher la « commande ».

Avant de créer une télécommande, nous devons créer des boutons et chaque bouton exécutera la commande correspondante.

La classe RemoteButton a un objet command, qui est exécuté lorsque vous appuyez sur le bouton.

Bouton à distance.java

Enfin, créons notre Appareil de contrôle à distance, qui aura plusieurs boutons pour chaque opération.
Lorsque nous créons un périphérique de contrôle à distance (en utilisant le constructeur), nous instancierons tous les objets et les affecterons.

RemoteControlDevice.java

Si vous regardez le code ci-dessus, nous avons défini plusieurs boutons dans notre télécommande et nous essayons de créer une télécommande universelle.

Nous sommes tous prêts à créer et à jouer avec notre RemoteControlDevice 🙂

Sortie:

TV is on!
TV is off!
SetTopBox is on!
SetTopBox is off!Process finished with exit code 0

Comme on le voit dans la sortie, j’ai appuyé sur différents boutons pour effectuer un ensemble d’opérations sur les appareils.

Donc, en bref, l’idée est de donner au client (utilisateur psvm / TV) une télécommande au lieu de le faire marcher jusqu’à la télévision ou de donner la TÉLÉVISION pour allumer / éteindre la télévision: D

Conclusion

Dans cet article, nous avons parlé du modèle de conception de commande.
En mots simples:

L’idée est d’encapsuler les opérations dans un objet différent (Commande) et de les réutiliser, puis de créer plusieurs boutons pour exécuter ces objets de commande contenant des opérations de périphérique.

Comme d’habitude, vous pouvez trouver tout le code sur mon GitHub.

You might also like

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.