Encapsuler un champ.
Vous avez un champ public.
Rendez le champ privé et créez des méthodes d'accès pour celui-ci.
##Example
class Person {
public String name;
}class Person {
private String name;
public String getName() {
return name;
}
public void setName(String arg) {
name = arg;
}
}##Why Refactor
L'un des piliers de la programmation orientée objet est l'encapsulation, la capacité à dissimuler les données d'un objet. Sans elle, tous les objets seraient publics et d'autres objets pourraient lire et modifier les données de votre objet sans aucun contrôle ! Les données se retrouvent séparées des comportements qui leur sont associés, la modularité des différentes parties du programme est compromise, et la maintenance devient compliquée.
##Benefits
-
Si les données et le comportement d'un composant sont étroitement liés et se trouvent au même endroit dans le code, il vous est bien plus facile de maintenir et de faire évoluer ce composant.
-
Vous pouvez aussi effectuer des opérations complexes liées à l'accès aux champs de l'objet.
##How to Refactor
-
Créez un accesseur (getter) et un mutateur (setter) pour le champ.
-
Trouvez toutes les utilisations du champ. Remplacez la lecture de la valeur du champ par le getter, et l'affectation de nouvelles valeurs par le setter.
-
Une fois toutes les utilisations du champ remplacées, rendez le champ privé.
Étapes suivantes
Encapsuler un champ n'est que la première étape pour rapprocher les données et les comportements qui les manipulent. Après avoir créé de simples méthodes d'accès aux champs, vous devriez réexaminer les endroits où ces méthodes sont appelées. Il est fort possible que le code présent dans ces zones trouverait mieux sa place dans les méthodes d'accès.