Bonsoir,
Je ne remet pas en cause l'existence des getters ou des setters (car ils ont une utilité dans le cas où on souhaiterait changer d'implémentation), mais je me demande parfois s'il ne serait pas utile de se débarrasser de ces 3 mot-clés : private, protected, public + de la visibilité package/default.
En effet la mécanique lors du développement est toujours la même : Mettre les attributs en privé, protégé si en compte se servir de ces attributs dans une classe Fille, et les méthodes en public (sauf si elle sert en interne). De plus, je trouve l'utilisation de la visibilité par défaut plus que douteuse en Java, elle n'a pas vraiment une raison d'être (bon même si on trouvera toujours une raison).
J'ai parfois l'impression que ces mots-clés, hérités du C++ (voir même d'un autre langage apparu avant celui-ci), encombrent inutilement le code :
- En C++ le but premier est peut-être d'indiquer qu'on cache l'implémentation du code... quand on développe en bas niveau pour des drivers et qu'on le vend à un client pourquoi pas, mais on sort du cadre des langages de haut niveau - décompilables - comme Java.
- Les langages tels que Python et Swift s'affranchissent ces mots-clés là; et puis un développeur peut s'il le désire utiliser exclusivement le mot-clé public en Java.
Pensez-vous qu'il est vraiment utile (voir indispensable) d'avoir les access level modifiers dans un langage ?
PS: Lien de la documentation Oracle sur les Access Level Modifiers ici.
Partager