farrakis
Messages postés32Date d'inscriptionvendredi 28 janvier 2005StatutMembreDernière intervention12 mai 2013
-
24 oct. 2011 à 10:06
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024
-
24 oct. 2011 à 20:26
Bonjour
Etant totalement autodidacte en programmation, mais pas forcément débutant,je me pose une question sur la "propreté d'un code". Je m'explique en exemple ci-dessus.
J'ai défini une classe que l'on appellera clsMERE. Cette classe contient un certain nombre de properties , dont une liste d'objet de classe clsB et une une d'objets de classe clsC.
Public Class clsMERE
Public Property Bs as List(of clsB)
Public Property Cs as Liste(of clsC)
End Class
Mes classes clsB et clsC sont définies par ailleurs et comportent elles aussi un certain nombre de properties .
Parmi les properties , fonctions ou routines de la classe clsB, certaines doivent dépendre de l'objet clsMERE.[*]
Public Class clsB
Public sub Toto
'toto dépend de l'objet clsMERE auquel il appartient
End Sub
End Class
La question que je me pose est comment coder proprement ces routines ? En effet, comment appeler dans une routine de clsB l'objet clsMERE auquel appartient clsB ?
J'ai imaginer plusieurs solutions, mais aucune ne me semble vraiment propre.
La première consiste à ajouter une property MERE de type clsMERE à ma classe clsB. Quand j'ajoute un objet clsB à mon objet myMERE, j'affecte automatique à la property MERE l'objet (cf. ci-dessus). Mais ce procédé me semble lourd : un objet clsMERE contient une série d'objets clsB qui eux même contiennt un objet clsMERE, etc.
Public Class clsB
Public property MERE as clsMERE
End Class
[code=vb]
Public Class clsMERE
Public Property Bs as List(of clsB)
Public Property Cs as Liste(of clsC)
public sub AjouterB(monB as clsB)
monB.Mere=me
Bs.add(monB)
end sub
End Class
La seconde idée a été de créer dans mon programme un variable globale maMERE et de mettre cet objet comme variable de la procédure TOTO. Mais je perd le coté "appartenance" de l'objet
Public Module General
Public maMERE as clsMERE
Public Sub MAIN
maMERE = new clsMERE
End Sub
End Module
Public Class clsB
Public sub Toto(MERE as clsMERE)
'toto dépend de MERE
End Sub
La troisième idée que j'ai eu est de coder toto dans clsMERE et non plus dans clsB. Mais du coup, je perd de beaucoup l'intérêt de la prog objet.
Public Class clsMERE
Public Property Bs as List(of clsB)
Public Property Cs as Liste(of clsC)
public Sub toto(monB as clsB)
'codage de toto
end sub
End Class
Avez-vous des idées sur le sujet ?
Merci et n'hésitez pas à poser des questions pour clarifier ma demande si nécessaire...
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 24 oct. 2011 à 20:26
Bonjour,
Je verrais plutôt, une variable/propriété mémorisant la classe parente dans la classe enfant.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Mon site