Bonjour la communauté, j'ai un souci, en fait je ne sais pas si s'en est un, mais ça m'embrouille le cerveau.
-SITUATION-
J'ai une classe, disons "Rapport".
Tout est bien encapsulé dedans, il est indépendant et marche très bien.
La classe contient une procédure Public Save() qui gère sa sauvegarde.
-PROBLÉMATIQUE-
Or dans cette fonction, après avoir sauvegarder en base l'objet, j'ai besoin de charger d'autres rapports liés à celui que j'enregistre initialement, pour mettre à jour certaines donnés de ces rapports (qui sont liés).
Par exemple: un développeur utilise mon objet, créer un rapport A, utilise Save(), dans save, après avoir sauvé A, je souhaite chargé A' et A'' pour y enregistrer des données communes. J’espère que tout va bien jusque là !
-SOLUTION-
J'ai donc créer une procédure (toujours dans ma classe Rapport) qui créer 3 objets : A, A' et A'' en variable locale pour les charger, consolider les données et sauvegarder le tout et de manière invisible pour l'utilisateur de l'objet.
Cette procédure appel évidemment quelques autres procédures pour diviser le travail et pas écrire un pavé.
Or ces procédures, je ne veux pas que l'utilisateur de l'objet les vois, c'est un travail "en interne", je les ai donc mis en privé.
(vous commencez à voir le problème?)
-QUESTION-
Et c'est là que ça me chagrine :
Dans ma procédure je fais par exemple : MaVariableLocalA.ProcedurePrivate()
Cette procédure n'est utiliser QUE pour cette manœuvre.
Mais cela ne pose-t-il pas problème ?
J'ai accès à ProcedurePrivate() car je suis dans ma classe, mais en même temps, l'utilisateur d'un objet n'est pas censé voir cette procédure.
Mais dans mon cas, je la vois cette procédure... comment se fait il finalement ?
Donc soit c'est normal : On peut appeler une procédure privé d'un objet si on se trouve dans la classe de l'objet. Et donc dans les procédures privés, quand je fais Me.MaPropriété, il prends bien celui de l'objet ?
Ou bien c'est anormal d'utiliser la POO ainsi, et c'est finalement un bug de l'utiliser ainsi et le Me. d'une procédure privé pointerait par exemple sur l'instance en cours et non sur l'objet employé ?
Si quelqu'un de sage pouvait éclaircir ma lanterne sur ce petit bug de cerveau, se serait fortement apprécié.
Partager