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.