Logo ConstructiCat
CodeBust.
Parcourir la section ▾

Intimité inappropriée.

Une classe utilise les champs et méthodes internes d'une autre classe.

##Signes et symptômes

Une classe utilise les champs et méthodes internes d'une autre classe.

class Customer {
  List<Order> orders = new ArrayList<>();
  void cancelOrders() {
    for (Order order : orders) order.status = "CANCELLED"; // modifie directement un champ de Order
  }
}
class Order {
  String status = "NEW";
  Customer customer;
  void assignTo(Customer customer) {
    this.customer = customer;
    customer.orders.add(this); // modifie la liste interne de Customer
  }
}

##Causes du problème

Gardez un œil attentif sur les classes qui passent trop de temps ensemble. De bonnes classes doivent en savoir le moins possible les unes sur les autres. De telles classes sont plus faciles à maintenir et à réutiliser.

##Traitement

##Bénéfices

  • Améliore l'organisation du code.

  • Simplifie la maintenance et la réutilisation du code.