question de design : copie ou référence?
j'utilise une bibliothèque d'interfacage avec des langages de scripts et je me demande ce qui est le plus naturel.
Prenons l'exemple:
Code:
1 2 3 4
| Object a;
Value v(a);
Value v2(v);
Value name = v("name"); |
ici, Value est un simple wrapper (une sorte d'union) qui permet d'accéder en runtime aux membres d'une structiure. Je vous passe sur toute la machinerie interne.
Object est une structure dont un des membres (name) est une chaîne de caractères.
On a donc une instance de Object (a). On la place dans un container "Value". Le container permet d'accéder a sa propriété "name" par son nom.
Et c'est ce qu'on fait.
Tout cela marche très bien mais je me demande ce qui est le plus naturel: est ce que une Value contient une copie de la valeur ou bien une référence?
Pour moi il est naturel que ce soit une référence mais je me rends compte que ca pourrait ne pas être naturel pour tous.
Dans l'exemple plus haut, que pensez-vous:
- v contient une copie de a ou une référence?
- v2 contient une copie de a ou une référence?
- name contient une copie de la propriété ou une référence?
ce qui me parait logique moi, c'est que si je fais
alors a.name vaut toto. mais je me demande si c'est vraiment ce que l'on pense.
et si v("name") = ""... est naturel, qu'en est il de
Code:
1 2
| Value name = v("name");
name = "tata"; |
est ce que je viens de changer a?
Qu'en pensez vous?