Public variable
Publié : 18 Mars 2021 14:48
Salut a tous,
Je poste ici car je m'interroge sur ce que je peux voir un peu partout sur internet.
Dans tout les tutos que j'ai pu voir je tombe sur des personnes qui déclarent leurs variables en public. Hors lors de mon apprentissage en autodidacte de la POO (en c++) si il y a bien un truc que j'ai compris c'est que jamais ô grand jamais on ne déclarait les attributs d'une class en public. Tant que je voyais ça dans des tuto random je ne me posais pas trop de questions ne sachant pas qui se cachait derrière ce dernier mais la je suis en train de lire le livre de Anthony Cardinale sur Unity3D (quelqu'un de callé sur le sujet visiblement et un livre qui a été relu par plusieurs personnes avant publication) et je vois qu'il fait la même chose.
Il met des attributs en public en expliquant :
- Qu'une variable public sera visible dans l'inspector et une variable privé non (oui mais n'est ce pas plutôt l'utilisation d'un [SerializeField] qui est fait pour ça ?)
- Une variable en public est accessible par les autres script (pas faux mais moi j ai appris qu'il fallait faire des methodes Get pour les récupérer justement)
Au final la règle de la POO que je m'efforce de suivre disant que les attribut doivent toujours être privé est bel et bien juste ou est elle finalement futile ? Car je n'ai jamais vu quelqu'un parler de l'encapsulation sur unity3D et c'est la foire à la saucisse tout le monde met des variables en public. Respecter l'encapsulation ne demande pas beaucoup d'effort supplémentaire alors pourquoi personne ne le fait ? Est ce une erreur visible partout ou on s'en fou finalement ?
Je poste ici car je m'interroge sur ce que je peux voir un peu partout sur internet.
Dans tout les tutos que j'ai pu voir je tombe sur des personnes qui déclarent leurs variables en public. Hors lors de mon apprentissage en autodidacte de la POO (en c++) si il y a bien un truc que j'ai compris c'est que jamais ô grand jamais on ne déclarait les attributs d'une class en public. Tant que je voyais ça dans des tuto random je ne me posais pas trop de questions ne sachant pas qui se cachait derrière ce dernier mais la je suis en train de lire le livre de Anthony Cardinale sur Unity3D (quelqu'un de callé sur le sujet visiblement et un livre qui a été relu par plusieurs personnes avant publication) et je vois qu'il fait la même chose.
Il met des attributs en public en expliquant :
- Qu'une variable public sera visible dans l'inspector et une variable privé non (oui mais n'est ce pas plutôt l'utilisation d'un [SerializeField] qui est fait pour ça ?)
- Une variable en public est accessible par les autres script (pas faux mais moi j ai appris qu'il fallait faire des methodes Get pour les récupérer justement)
Au final la règle de la POO que je m'efforce de suivre disant que les attribut doivent toujours être privé est bel et bien juste ou est elle finalement futile ? Car je n'ai jamais vu quelqu'un parler de l'encapsulation sur unity3D et c'est la foire à la saucisse tout le monde met des variables en public. Respecter l'encapsulation ne demande pas beaucoup d'effort supplémentaire alors pourquoi personne ne le fait ? Est ce une erreur visible partout ou on s'en fou finalement ?