Logotipo de ConstructiCat
CodeBust.
Explorar la sección ▾

Intimidad inapropiada.

Una clase usa los campos y métodos internos de otra clase.

##Signos y síntomas

Una clase usa los campos y métodos internos de otra clase.

class Customer {
  List<Order> orders = new ArrayList<>();
  void cancelOrders() {
    for (Order order : orders) order.status = "CANCELLED"; // escribe directamente en un campo de Order
  }
}
class Order {
  String status = "NEW";
  Customer customer;
  void assignTo(Customer customer) {
    this.customer = customer;
    customer.orders.add(this); // modifica la lista interna de Customer
  }
}

##Causas del problema

Vigila de cerca las clases que pasan demasiado tiempo juntas. Las buenas clases deberían saber lo menos posible unas de otras. Esas clases son más fáciles de mantener y reutilizar.

##Tratamiento

##Beneficios

  • Mejora la organización del código.

  • Simplifica el mantenimiento y la reutilización del código.