17 juillet 2008

POO et réutilisation du code

Un billet spécial débutant en POO et pour tous ceux qui ne voient pas l’intérêt de la POO dans un objectif de gain de temps et d’évolution.

uml

En effet, peu de sujets abordent l’un des gros avantages de la programmation objet qu’est la réutilisation de classes dans différents projets.

Ainsi il est parfois très utile d’intégrer un comportement dans une classe externe plutôt qu’au sein d’un objet particulier.

Explications

Admettons que nous ayons deux MovieClip, et que nous fassions disparaitre l’un puis apparaitre l’autre à la suite. Ces deux clips étant eux même stockés dans une troisième classe qui elle gère ces fades et bien d’autres actions.

Nous sommes face à un cas où il est tout à fait pertinent de créer une classe qui se chargera d’effectuer les fades des différents éléments en les passant comme arguments ainsi que divers autres paramètres (vitesse, alpha…) à des méthodes particulières.

Pourquoi ? Et bien pour plusieurs raisons.

Tout d’abord cela permet d’alléger la classe qui contient ces deux clips (qui est surement elle même une classe étendant MovieClip), ainsi elle fait moins d’actions et les fait bien. De plus, sa relecture en est facilitée.

Ensuite cela permet de réutiliser la classe chargée d’effectuer des fades dans tout le projet sans faire de copier / coller du code et même (et surtout) dans d’autres projets.

Enfin, cela donne la possibilité d’ajouter des fonctionnalités à la classe et ainsi de se constituer des librairies d’outils en tout genre.

L’erreur du débutant est souvent d’associer une classe à un élément visuel, or passer à un niveau d’abstraction supérieur avec des classes d’outils ou des managers (classes permettant de “manager” des objets) permet de rend son code plus performant, plus évolutif et surtout réutilisable.

En un mot : il ne faut pas avoir peur de multiplier les classes permettant des réaliser des actions génériques et surtout ne pas se contenter de classes héritant de MovieClip (ou un quelconque DisplayObject).

Pour terminer ce billet, un exemple utilisant une classe AS3 de ma librairie perso qui a pour rôle de créer des effets de textes.
Pour cela rien de plus simple, il me suffit de préciser le TextField, le texte à taper et enfin un des effets disponibles. Il m’est alors possible d’utiliser cette classe à peu près partout.

This movie requires Flash Player 9

Je compte d’ailleurs ouvrir d’ici la rentré de septembre un laboratoire (ou “lab”, c’est plus tendance), dans lequel je partagerai mes diverses expériences et classes outils telles que texteffects.

Commentaires

CUT HERE - 18 juillet 2008

Intéressant, dommage que tu ne postes pas une partie du code. Comme tu le précises, la plupart des tutos POO n’abordent pas l’intérêt pratique par rapport à un site (pour un jeu, on arrive à la mettre en place plus naturellement). Vivement le lab !

Thibault Leporé - 18 juillet 2008

Concernant des bouts de code, je compte mettre à disposition les classes de TextEffects (j’utilise plusieurs classes notamment une pour les événements) en open source quand j’aurais optimisé tous les effets (actuellement 8 effets) et que j’en serait satisfait niveau souplesse d’utilisation ;)

Laisser un commentaire

Commentaire