Intimidade Inapropriada.
Uma classe usa os campos e métodos internos de outra classe.
##Sinais e sintomas
Uma classe usa os campos e métodos internos de outra classe.

class Customer {
List<Order> orders = new ArrayList<>();
void cancelOrders() {
for (Order order : orders) order.status = "CANCELLED"; // altera diretamente um campo de Order
}
}
class Order {
String status = "NEW";
Customer customer;
void assignTo(Customer customer) {
this.customer = customer;
customer.orders.add(this); // modifica a lista interna de Customer
}
}##Causas do problema
Fique de olho em classes que passam tempo demais juntas. Boas classes devem saber o mínimo possível umas sobre as outras. Tais classes são mais fáceis de manter e reutilizar.
##Tratamento
##Benefícios
-
Melhora a organização do código.
-
Simplifica o suporte e a reutilização de código.