Accueil > Développer sur Mac OS X > Avec REALbasic, la programmation Orientée Objet est facile

Avec REALbasic, la programmation Orientée Objet est facile

Par Matt Neuburg, le 23/10/2001

traduit par Pierre Toret, le 2/05/2004

Qu’est ce que la Programmation Orientée Objet (O.O.P.) ? Quoi que ce soit, c’est clairement le futur. Les langages professionnels de programmation largement utilisés comme le C++ et Java sont orientés objets. Les rayons de votre librairie sont remplis de livres qui traitent de la Programmation Orientée Objet. Le site Amazon.com par exemple, propose une liste de mille livres sur ce sujet.

Si vous n’avez jamais programmé avant, la programmation Orientée Objet va ressembler à un parcours d’obstacles. Mais n’ayez pas peur : Realbasic est là pour vous aider. Dans un article plus récent, « Enseigner aux enfants à programmer avec Realbasic », j’ai expliqué pourquoi Realbasic est un bon moyen pour apprendre à programmer. C’est aussi une bonne méthode pour se familiariser avec la Programmation Orientée Objet. Je suis passé également par ces mêmes étapes, j’ai essayé d’apprendre le C++ pendant des années mais rien à faire. Par contre après avoir utilisé Realbasic, je suis revenu au C++ et j’ai pu enfin le comprendre. Realbasic m’a enseigné les concepts de la Programmation Orientée Objet, ces mêmes concepts que je n’avais préalablement pas pu intégrer.

L’O.O.P. n’est pas quelquechose dont il faut avoir peur. L’orientation objet rend la programmation simple et plus aisée ; cela est particulièrement vrai pour Realbasic où les objets eux-mêmes sont faciles à utiliser et ou les bénéfices liés à leur utilisation sont immédiatement perceptibles.

Que sont les objets ?

Voici cinq manières différentes permettant de saisir ce qu’ils sont et de prendre connaissance de la façon dont il vont rendre votre vie plus facile lorsque vous programmerez.

  1. Les objets sont une manière d’organiser votre programme

    Votre programme est composé de texte, appelé «code» dans le jargon des programmeurs, le but de ce texte étant de conduire quelque part. Si il est représenté par un seul texte long et continu, vous ne pourrez jamais rien y retrouver. Il se présentera comme un livre qui enchaîne les lignes les unes après les autres et vous aurez souvent besoin d’aller y rechercher des éléments à l’intérieur.
    Les objets donnent une structure à votre «code», ils sont semblables aux chapitres et aux parties d’un livre.

    La figure 1 montre la fenêtre de projet pour le jeu Tic Tac Toe développé en appendice de mon livre traitant de Realbasic.

    Figure 1
    Figure 1

    D’une manière simple, les éléments listés dans cette fenêtre sont les objets du programme. Vous pouvez même probablement deviner ou est situé le code. Par exemple, dans Tic Tac Toe, vous avez besoin de savoir si l’une des rangées contient trois pièces semblables parce que si cela arrive, le jeu est terminé.
    Où pensez-vous que j’ai disposé le code pour détecter cela ? Dans l’objet rangée évidemment.

    Avec Realbasic, pour voir le code d’un objet, il faut seulement double cliquer sur son listing dans la fenêtre de Projet. Double cliquez le listing correspondant à l’objet rangée et vous découvrez le code «Three In A Row», (trois dans une rangée).
    La figure 2 montre comment Realbasic aide votre code à rester clair et organisé par un embalage physique du code correspondant à un objet donné.

    Figure 2
    Figure 2

  2. Les objets sont des acteurs.Dans un programme Realbasic, la seule manière pour qu’une action se produise a lieu lorsqu’un message est envoyé à un objet lui demandant de faire quelque chose. De cette manière, vous pouvez envisager de lancer un programme qui est constitué d’une série de messages qui sont successivement envoyés d’objets en objets.
    Par exemple, la figure 3 montre un programme simple appelé «Hello World», (Bonjour le monde) consistant en un «Button», (Bouton) et un «Textfield», (Champ de texte).

    Figure 3.
    Figure 3

    Lorsque l’utilisateur appuie sur le bouton, le champ de texte affiche «Hello world !» comme l’indique la figure 4.

    Figure 4.
    Figure 4

    La figure 5 montre le code qui rend possible cet événement. C’est la seule partie de code contenue dans le programme.

    Figure 5
    Figure 5

    Le bouton et le champ de texte sont un «PushButton object» et un «Editfield object» respectivement : bouton objet et champ de texte objet, appelés «PushButton1» et «TheEditField».
    Lorsque l’utilisateur appuie sur le bouton, la structure de l’application Realbasic envoie un message d’action au bouton, lui disant d’exécuter son code d’action et c’est le code que vous avez découvert.
    Le code d’action envoie un message au champ de texte lui disant d’afficher le texte contenu dans la chaîne de caractère «Hello, world !».La syntaxe linguistique pour cela est appelée «dot notation», (notation point). Nous avons le nom de l’objet «TheEditfield», (le champ de texte), un point et aussi ce que nous voulons que l’objet fasse. C’est comme si le code disait Hé !, le champ de texte ! Affiche le texte suivant : «Hello World !».
    Est ce que beaucoup de code est nécessaire à Realbasic pour que cette action se produise ?
    Sans que vous ayez à écrire le moindre code Realbasic est déjà paré d’objets qui savent faire plein de choses utiles. Un champ de texte affiche automatiquement son propre texte. De ce fait, nous attribuons le texte et très rapidement c’est ce qui apparaît dans la fenêtre. Beaucoup de la puissance et de la facilité de Realbasic est contenue dans les «formidables» objets préfabriqués comme ceux que l’on vient de voir.

  3. Les objets sont des acteurs.Les êtres humains perçoivent naturellement le monde comme peuplé d’objets. Avec les objets vous allez être amené à penser que votre programme est lui aussi rempli d’éléments semblables aux objets du monde réel. Realbasic vous donne le signal de départ avec l’utilisation de son répertoire d’objets pré-construits. Le plus souvent, ce sont ces éléments qui forment l’interface utilisateur de votre programme. Par exemple, dans le programme «Hello world !», le PushButton (Bouton Poussoir) est un objet et le champ de texte est également un objet, la fenêtre et même l’article «Quit menu item» (menu quitter) sont aussi des objets.

    Vous pouvez définir vos propres objets. Décider quels objets décident représente un challenge mais c’est également amusant. C’est comme créer son propre univers. Dans le jeu Tic Tac Toe, l’ensemble des objets listés dans la fenêtre de projet représentent tous des objets que j’ai défini par moi-même. Et vous pouvez vous rendre compte qu’ils proviennent tous des aspects du jeu Tic Tac Toe réel : un X, un O, un vide (l’emplacement ou l’on peut jouer en plaçant un X ou un O), une rangée (trois emplacements en ligne droite), un jeu avec un joueur humain ou contre l’ordinateur….

  4. Les objets rendent votre programme plus lisible.

    Cela arrive lorsque l’on défini des objets qui sont bien nommés ; le nom des objets montre clairement ce qu’ils font ou peuvent faire.

    Même si vous ne connaissez pas Realbasic vous pouvez donner du sens à cela. Par exemple, la figure 6 montre le code du jeu Tic Tac Toe ou l’ordinateur décide de jouer. Premièrement l’ordinateur passe en revue chaque rangée pour savoir si elles possèdent deux pièces à lui dans l’une d’elles. Si c’est le cas, il joue dans le dernier emplacement pour remporter la partie. Ensuite, il passe en revue chaque rangée pour voir si il y a deux pièces de l’adversaire dans l’une d’elles, si c’est le cas il joue dans l’emplacement vide pour empêcher l’adversaire de remporter la partie. Dans tous les autres cas de figure, il joue au hasard. Le code REALbasic correspondant ne lui dit pas cela précisément bien sûr, mais c’est presque cela. Les objets et la notation en point rendent possible tout cela.

    Figure 6
    Figure 6

  5. Les objets sont réutilisables.

    Souvent vous allez concevoir des objets qui seront utilisables dans plus d’un contexte. Cela peut constituer une interface «widget» qui laisse l’utilisateur parcourir fichiers et dossiers sur le disque dur de son ordinateur. Ou cela peut être autre chose de plus abstrait, comme un objet qui sait comment accomplir SHA1 hacheur-encodeur (peut importe ce que cela peut représenter).
    Le point est qu’une fois que vous avez construit un tel objet vous pouvez l’utiliser dans n’importe quel autre programme Realbasic que vous écrivez. Il suffit de déplacer cet objet de la fenêtre de projet sur votre tableau de bord. Maintenant cet objet vit en toute indépendance des autres programmes. Plus tard si vous concevez d’autres programmes où vous voulez bénéficier des fonctionnalités de cet objet, il suffit de le déplacer du tableau de bord dans votre programme pour pouvoir l’utiliser.

Classes et occurrences

Les objets ne sont pas seulement réutilisables entre différents programmes ; ils le sont également au sein d’un même programme. C’est ce que montre la figure 7.

Figure 7
Figure 7

Ici nous voyons un jeu simple avec trois cibles, les cibles se déplacent vers la droite sur la fenêtre et l’utilisateur est supposé tirer dessus. Vous pouvez également voir le code du dessin correspondant à «Target Object», (l’objet cible). D’une manière très simple celui-ci dessine trois cercles colorés.

Maintenant, bien que vous voyez trois cibles, il n’existe qu’une partie du code qui les dessine. Toutes les cibles présentées par le programme sont dessinées de la même manière parce qu’elles utilisent le même code. Dans le langage technique de l’O.O.P., nous disons que toutes les cibles visibles sont des occurrences de la «Target Class» (classe cible).
Simplement, cela évite au programmeur une répétition. Cela permet en outre de rendre les changements plus faciles. Dans la figure 8, j’ai seulement changé un chiffre dans une ligne du code correspondant au dessin. Pouvez-vous le trouver ?
Le résultat sera que toutes les cibles qui apparaitront à partir de maintenant, seront dessinées de cette nouvelle façon.

Figure 8
Figure 8

Héritage

Les objets sont réutilisables d’une autre façon. Ils peuvent être utilisables. Le programmeur peut faire qu’un objet soit basé sur un autre objet hormis dans certains cas ou situations. C’est ce que l’on appelle l’héritage parce que l’objet crée hérite de toutes les caractérististiques de l’objet initial. Dans Realbasic, ceci est particulièrement utile, vous pouvez rendre utilisable des objets qui ne vous appartiennent pas.

Pour voir ce que je veux dire, réfléchissons à partir de la classe déjà existante des «Editfields» (les champs de texte). Nous voyons immédiatement qu’un champ de texte sait comment afficher son propre texte automatiquement, il a également d’autres possibilités, l’utilisateur peut saisir dans un champ de texte, le dérouler verticalement et copier à partir de celui-ci. Bien, maintenant demandons plus, supposons que nous voulions un champ de texte qui connaisse toutes ces choses et un peu plus.

Par exemple, un champ de texte qui ne réponde pas automatiquement lorsque «Select All Menu Item», (le menu tout sélectionner) est activé.
Ajoutons ce savoir-faire. Premièrement, créer un objet que nous appelerons «SelectAllEditField», (Tout Selectionner Champ de texte) et utilisons les propriétés de la fenêtre pour préciser que son « super » (sa catégorie), est un «EditField», (champ de texte), voir figure 9, cela veut dire que c’est un champ de texte avec ce que nous venons de lui ajouter comme particularités.

Figure 9
Figure 9

Pour prouver que «SelectAllEditField», (Tout Selectionner Champ de texte) est bien un Editfield, déplaçons-en un à partir de la fenêtre de projet jusque dans la fenêtre du programme comme cela est montré à la figure 10.

Figure 10
Figure 10

Suffisament rassuré maintenant vous avez terminé avec l’Editfield dans la fenêtre, figure 11.

Figure 11
Figure 11

D’une autre manière, les «SelectAllEditField», sont très difficilement différenciables des Editfields prêts à l’emploi, excepté le fait que vous avez rajouté votre code à l’intérieur. Et vous savez comment le faire : double cliquer sur le listing «SelectAllEditField», dans la fenêtre du projet. Cela ouvre une fenêtre de code ou vous pouvez ajouter celui qui détermine l’action à entreprendre lorsque l’utilisateur sélectionne le «SelectAllMenuItem», figure 12.

Figure 12
Figure 12

Cela fonctionne ! Maintenant un utilisateur peut choisir le «SelectAllMenuItem» pour sélectionner tout le texte dans le champ de texte, comme cela est montré à la figure 13.

Figure 13
Figure 13

Souvenez-vous que les règles concernant les classes et les occurrences traduisent le fait que le code est très puissant. Vous pouvez ajouter autant de «SelectAllEditFields» dans votre programme que vous voulez. Ils répondront toujours correctement à ce qu’il doivent faire.

Conclusion

Ce n’est pas tout ce qu’il faut savoir à propos des objets et de la Programmation Orientée Objet, mais c’est assez pour montrer qu’il y a de bonnes raisons qui expliquent pourquoi l’O.O.P. est si largement utilisée. C’est parce que les objets sont pratiques, utiles et puissants. Les objets sont aussi amusants, et c’est pourquoi dans Realbasic ils rendent ludique la programmation.
Mon livre : «Realbasic, The Definitive Guide, Seconde Edition» part du principe que vous n’avez jamais programmé avant. Malgrè cela, dans la course pour vous enseigner le langage de programmation, l’O.O.P. vous est également apprise.
Pour une consultation en ligne des détails, vous pouvez visualiser comme exemple le chapitre 3 et le chapitre 4 qui sont la référence pour la Programmation Orientée Objet.
La raison pour laquelle j’ai choisi cette approche pour ce livre est qu’il est impossible avec Realbasic de ne pas programmer en Programmation Orientée Objet.
Les objets pour Realbasic sont comme les décors d’un gateau ; ils ne représentent pas un haut niveau inaccessible dans la programmation. Ils sont construits pour toutes les choses que vous faites, constituent une base pour le langage de programmation et réalisent le support de l’interface sur laquelle vous travaillez lorsque vous programmez avec Realbasic. L’intégration des objets avec le langage et l’interface expliquent pourquoi il est possible d’écrire des programmes utiles si rapidement avec Realbasic.

Textes originaux en anglais sur O’Reilly : With REALbasic, Object-Oriented Programming is Easy par Matt Neuburg

ptoret Développer sur Mac OS X , ,

  1. Pas encore de commentaire
  1. Pas encore de trackbacks
Vous devez être identifié pour poster un commentaire