Suivez-nous sur X
|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Programmation : C - Gadget, application de la programmation orientée objet
(Article écrit par Batchman et extrait d'A-News (Amiga News) - mars 1989)
|
|
Voici un bon moyen d'épater vos copains ou de briller en société : la programmation orientée objet est le dernier style à la
mode dans les Universités.
Quels sont ses avantages ?
Au niveau du code généré, aucun. Le programme n'est pas plus rapide ; il occupe autant de mémoire. Mais la source n'est
plus du tout du type des programmes C courants. L'intérêt de ce style de programmation est de pouvoir manipuler des objets
de tous les types de la même façon, sans se préoccuper justement de leur type.
Ceci induit beaucoup de propriétés mais ne se justifie que dans de grands programmes. Néanmoins, et pour en revenir aux gadgets,
nous allons voir comment ce style de programmation peut nous simplifier la vie mais, ne nous leurrons pas, ce n'est qu'un petit
aperçu des possibilités.
Les pointeurs
Il faut ici parler des pointeurs de fonction en C car le Chorizo Kid ne l'a pas fait dans ses articles d'initiation.
Une fonction en C se compose de deux parties :
- Le code, c'est-à-dire les instructions de votre programme.
- La valeur de retour qui est une variable du type de la fonction (int, char, etc.).
Le principe est que chaque fois que vous appelez votre fonction par f(), vous provoquez son évaluation : le code est exécuté
et la valeur de retour est placée dans la variable f(). L'appellation "f" désigne l'adresse de la fonction. Vous pouvez donc
manipuler des fonctions par l'intermédiaire de leurs pointeurs.
Maintenant, rappelez-vous comment on sait qu'un gadget est sélectionné : nous avons mis son numéro dans un champ de la
structure. Lorsque l'événement survient, on récupère ce numéro, puis appelle la fonction correspondant au gadget par un
switch{..}. Pour chaque gadget, le programmeur doit écrire dans le switch l'appel de la fonction à appeler (Cf.
cet article).
Imaginez quand votre programme évolue : si vous ajoutez ou enlevez des gadgets, il faut modifier les appels des fonctions
de traitement. Or, Vous oublierez toujours de modifier quelque chose dans les switchs, ou ailleurs. Ne rigolez pas, c'est
l'intérêt principal de la programmation orientée objet : faciliter la maintenance.
Supposez maintenant que vous placiez dans chaque gadget un pointeur sur la fonction qu'il déclenche. Lorsque vous êtes prévenu
qu'un gadget a été activé, vous appelez directement cette fonction ; vous n'avez plus besoin de déterminer quel est le
gadget activé. Dans les langages orientés objet, on appelle cette fonction une méthode.
Pour résumer, il n'y a plus besoin de switch ; quand un gadget change d'état, on reçoit l'adresse de sa structure qui contient
l'adresse de la fonction à appeler. Ouf ! Ce sera plus clair le
mois prochain dans le programme d'exemple car, depuis que j'écris,
la place commence à se faire rare. Retenez quand même l'intérêt essentiel de ce principe : si vous voulez ajouter un gadget,
vous ajoutez sa structure et sa méthode : vous n'avez plus à toucher au switch puisqu'il n'existe plus !
Ceci n'est qu'un petit aperçu des possibilités de la programmation orientée objet (on dit aussi dirigée par les données) mais
il montre sur notre sujet que cela facilite grandement la maintenance des programmes.
|