Article de reference

Objectif-action

Le terme paradigme de conception cible-action fait référence à un type d' architecture logicielle , dans lequel un programme informatique est divisé en objets qui établissent dy...

Le terme paradigme de conception cible-action fait référence à un type d' architecture logicielle , dans lequel un programme informatique est divisé en objets qui établissent dynamiquement des relations en indiquant aux autres quel objet ils doivent cibler et quelle action ou quel message envoyer à cette cible lorsqu'un événement se produit. Cela est particulièrement utile lors de la mise en œuvre d'interfaces utilisateur graphiques , qui sont par nature pilotées par les événements .

Avantages

L'approche cible-action des systèmes pilotés par événements permet beaucoup plus de dynamisme par rapport à d'autres approches plus statiques, comme le sous-classement . En effet, le sous-classement est une manière relativement rigide de programmer : un programmeur doit définir la logique d'interconnexion interne d'un programme au moment de la conception et celle-ci ne peut pas être modifiée ultérieurement, à moins que le programme ne soit arrêté, réorganisé et reconstruit. D'autre part, la programmation basée sur la cible-action peut les modifier complètement au moment de l'exécution , permettant ainsi au programme de créer de nouvelles interrelations et un nouveau comportement par lui-même.

Un bon exemple de cette approche est l' API OpenStep , qui, en partie grâce à son utilisation du langage Objective-C dynamique , a une grande partie de son interface utilisateur graphique implémentée à l'aide du paradigme cible-action. Considérons l'exemple suivant, écrit en Objective-C :

[bouton setTarget : self] ; [bouton setAction : @selector(doSomething)]; 

Désormais, lorsque le bouton identifié par la variable button est pressé, le système d'exécution essaiera d'envoyer un message nommé doSomething à l'objet dans lequel ce code a été invoqué. Il est également tout à fait possible de déterminer le message à envoyer au moment de l'exécution :

[bouton setTarget : self] ; [bouton setAction : NSSelectorFromString([textField stringValue])]; 

Ici, le message à envoyer est déterminé en consultant la valeur de chaîne d' un champ de texte (la chaîne de texte que l'utilisateur a tapée dans un champ de texte). Cette chaîne est ensuite convertie en message (en utilisant la fonction NSSelectorFromString ) et transmise au bouton comme son action. Cela est possible car, sous Objective-C, les méthodes sont représentées par un sélecteur , une simple chaîne décrivant la méthode à appeler. Lorsqu'un message est envoyé, le sélecteur est envoyé dans l'environnement d'exécution d'ObjC, comparé à une liste de méthodes disponibles, et l'implémentation de la méthode est appelée. L'implémentation de la méthode est recherchée au moment de l'exécution, et non au moment de la compilation.

Inconvénients

En raison du dynamisme et de la liberté de comportement extrêmes accordés aux programmes conçus avec le paradigme cible-action, il peut arriver que le concepteur du programme implémente de manière incorrecte une partie de la logique d'interconnexion et cela peut conduire à des bugs parfois difficiles à détecter. Cela est dû au manque de contrôle au moment de la compilation fourni par le compilateur qui ne peut pas voir les interconnexions. Ainsi, le contrôle de la cohérence des interconnexions est entièrement laissé au programmeur.

Le résultat d'une liaison cible-action incorrectement connectée peut différer en fonction de la manière dont le système particulier dans lequel le programme est implémenté considère cela :

  • il peut ignorer la condition et ne rien effectuer (comme dans l'exemple du bouton ci-dessus - si la cible d'un bouton ne répond pas à son message d'action, appuyer sur le bouton ne fait tout simplement rien)
  • il peut considérer un tel état comme un bug , auquel cas il provoquera très probablement le blocage du programme ou invoquera une exception d'exécution

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index