Bonjour,
Mon objectif est le suivant : je voudrais gérer en VBA du polymorphisme c'est-à-dire du point de vue VBA une classe d'interface qui est implémentée par d'autres classes et coupler cela à une fonction factory, c'est à dire qui me permet d'initier les propriétés des objets.
La classe d'interface s'appele ILiving
Les classes qui implémentent cette interface s'appellent CLasse_predateur, Classe_Proie, Classe_Ressource
Voici le code que j'ai pour tester ceci :
Ici, le but est que la fonction "Initialize_Iliving" du module Factory me renvoie un objet dans ma_variable_2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim ma_variable_1 As ILiving Dim ma_variable_2 As ILiving Set ma_variable_2 = Factory.Initiliaze_ILiving(predateur, 12, 2) MsgBox ma_variable_2.column
Dans cette fonction j'ai :
Mon souci est le suivant : à l'intérieur de ma fonction, mon polymorphisme semble fonctionné, en cela que l'objet temp_living est créé, que sa propriété column est bien renseignée, mais surtout, plus important, que le code utilisépour le Let et Get de cette propriété est bien le code respectif des classes Classe_Proie, CLasse_ressource ou CLasse_predateur selon la valeur de specy.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Public Function Initiliaze_ILiving(specy As Species, row As Integer, column As Integer) As ILiving Dim temp_living As ILiving Select Case specy Case predateur Set temp_living = New Classe_predateur Case Proie Set temp_living = New Classe_Proie Case Ressource Set temp_living = New Classe_Ressource End Select temp_living.column = column MsgBox temp_living.column Set Initialize_ILiving = temp_living End Function
Le problème en revanche, c'est que lorsque je sors de la fonction "Initiliaze_ILiving", la propriété column de mon objet "ma_variable_2" n'a pas été renseignée ... rien nada
Avez-vous svp une idée de ce que je ne fais pas correctement ?
Merci de votre aide !
Partager