🔸3🔸Éviter public
si possible¶
Pourquoi Éviter les Attributs Publics¶
Les attributs publics posent plusieurs problèmes importants :
- Ils permettent la modification directe des données sans aucun contrôle
- Ils ne garantissent pas la cohérence des données de l’objet
- Ils violent le principe d’encapsulation où un objet doit être responsable de sa propre cohérence[1]
Par exemple, avec des attributs publics, on pourrait faire :
Solution : Encapsulation avec Accesseurs et Mutateurs¶
Pour protéger les données tout en permettant leur accès contrôlé, on utilise :
Accesseurs (getters) :
Mutateurs (setters) :
public class Personne {
private int age;
public void setAge(int age) {
if (age > 0 && age < 125) { // Validation des données
this.age = age;
}
}
}
Cette approche offre plusieurs avantages :
- Contrôle de la validité des données avant modification[1]
- Protection de l’intégrité des données de l’objet[3]
- Possibilité de modifier l’implémentation interne sans affecter le code client
- Capacité d’ajouter des traitements supplémentaires lors de l’accès ou de la modification
En utilisant cette approche, l’objet maintient le contrôle sur ses données tout en fournissant une interface claire pour y accéder et les modifier de manière sécurisée.
Citations¶
- [1] https://prog101.com/exemples/csharp/poo/attribut-prive-public.php
- [2] https://www.louismarchand.me/index.php/2021/06/25/pourquoi-je-naime-pas-la-portee-privee/
- [3] https://datascientest.com/programmation-orientee-objet-guide-ultime
- [4] https://jmdoudoux.developpez.com/cours/developpons/java/chap-poo.php
- [5] https://www.jmdoudoux.fr/java/dej/chap-poo.htm
Note
Page rédigée en partie avec l’aide d’un assistant IA, principalement à l’aide de Perplexity AI, avec le LLM Claude 3.5 Sonnet. L’IA a été utilisée pour générer des explications, des exemples et/ou des suggestions de structure. Toutes les informations ont été vérifiées, éditées et complétées par l’auteur.