SafetyFirst - func setCredentials

#1

Bonjour à tous Ami(e)s codeurs(euses),

Je travaille actuellement sur le projet SafetyFirst. Jusqu’ici, tout se passait bien. L’app progressait, les explications de Maxime Britto étaient claires… jusqu’à la création de la var _credentials:Credentials et la func setCredentials. J’essaye de me passer et repasser en boucle les explications de Maxime mais je n’arrive pas à assimiler le pourquoi du comment.

Quelqu’un pourrait-il m’expliquer avec d’autres mots ce passage ?

Merci par avance
:desktop_computer:

#2

Désolé, en relisant mon précédent post, je me suis aperçu qu’un Screen Shot serait intéressant pour étayer ma requête.

Capture d’écran 2019-02-19 à 22.54.01

#3

C’est un mécanisme de sécurité, protégeant l’accès aux données.

Si la variable credentials était public (sans l’attribut private), on pourrais y accéder librement en lecture/écriture depuis l’extérieur de la classe.

Avec private elle est inaccessible en lecture. Son contenu reste secret. La fonction setCredentials() permet d’écrire dedans, en appliquant éventuellement un contrôle du contenu pour éviter les problèmes.

Le caractère _ devant le nom d’une variable private est une pratique courante pour identifier sa nature au premier regard. C’est une évolution de la convention de nommage m_ du C++ pour les variables privées.

#4

Merci beaucoup Draken pour ta réponse rapide. C’est déjà plus clair.

J’avais bien compris le principe de la variable “private” Ma question est peut-être totalement hors sujet mais pourquoi ne pas utiliser une propriété calculé de type set/get ?

#5

C’est marrant que tu dises ça. J’avais justement l’intention d’éditer le post ce WE pour expliquer que l’utilisation d’une fonction pour modifier la valeur d’une variable private est une vieille technique héritée du C++, et que maintenant on dispose des setters et des getters pour faire la même chose d’une manière plus moderne …

EDIT : Pourquoi plus moderne ? Parce qu’il est plus élégant d’utiliser une propriété qu’une fonction pour transmettre une information.