Module de classe ou classe de module ?

Résolu
Redge3 Messages postés 5 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 25 mai 2006 - 24 mai 2006 à 18:26
Redge3 Messages postés 5 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 25 mai 2006 - 25 mai 2006 à 12:07
Bonsoir,


Voilà ma question :
Quel est l'intérêt d'avoir recours aux modules de classes ? Dit autrement : des deux solutions ci-dessous, laquelle est la meilleure ?
1) dans un module normal, je crée :
Type Voiture
    Nom As String   
    Largeur en pixel
    Hauteur As Long            
    Vitesse As Long            
    CompteurVitesse As Long    
    X As Long                  
    Y As Long                  
End Type
2) Je crée un module de classe et j'écris exactement la même chose.
La finalité, c'est d'éviter de passer par des tableaux ARRAY et de faire un petit jeu qui soit otpimisé.

Merci d'avance
Redge

3 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
24 mai 2006 à 18:34
Faire un Type Voituer et feire une classe Voiture va radicalement changer ta facon de programmer.
Avec un Type, tu devras faire des truc du genre ...

Sub Accelerer(V As Voiture)
V.Vitesse = V.Vitesse + 10
End Sub
Tu créeras ensuite uen var de type Voiture ....
Dim V As Voiture
et tu la fera accelerez par ....
Call Accelerer(V)

Avec une classe Voiture, tu ajouteras une méthode Accelerer à ta classe ...
Sub Accelerer()
Vitesse = Vitesse + 10
End Sub
et ensuite tu créeras une instance de ta classe ...
Dim V As New Voiture
... et tu lui feras mettre la gomme en faisant ...
V.Accelerer

La version en Classe est plus "simple" car l'utilisation des méthodes et des propriétés des instances est plus simple.

Et puis si tu dois gérer toutes les F1 d'un grand prix, tu devras faire un tableau de type Voiture ou une collection d'objet Voiture. Avec la collection, tu pourras faire des boucles For Each, ce qui ne sera pas possible sur un tableau de type Voiture.

Bref, la solution Classe a bcp d'avantage à mon avis .... Même si cela n'est pas la solution la plus rapide en terme de temps d'execution mais avec des objets de ce type, c'est peanuts !!!

CR
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
24 mai 2006 à 19:17
Les modules de classe t'amèneront à repenser ton code pour l'orienter vers une programmation objet petit à petit.

La POO (programmation orientée objet) est l'évolution logique de la programmation fonctionnelle du temps du BASIC.

Sans le savoir, tu utilise quotidiennement des modules de classes (un simple commandbutton par exemple est, dans sa structure même, un module de classe (sous forme de contrôle, mais ca ne change rien au principe)).

Je te conseille vivement de passer par les modules de classe moi aussi car tu comprendras au fil du temps toutes les possibilités que cela t'ouvre au niveau réutilisation du code et encapsulation des données !

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
3
Redge3 Messages postés 5 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 25 mai 2006
25 mai 2006 à 12:07
Merci pour toutes ces infos. Bon, je me lance donc dans la POO

Redge
3
Rejoignez-nous