Reduzindo acoplamento no desenvolvimento de software
Existem vários princípios que ajudam na implementação de códigos mais desacoplados e tudo mais, aqui a ideia e exemplificar como podemos fazer isso. Exemplo Imagine que estamos implementando um código que vende jornal, teremos uma entidade que representa a Banca e outra que representa a Carteira de um cliente. Implementação acoplada public void pagaJornal(BigDecimal valorJornal, Carteira carteira){ if(carteira.getSaldo().compareTo(valorJornal) > 0){ cateira.debitaSaldo(valorJornal); }else{ // exception SaldoInsuficiente } } Nessa primeira abordagem a Banca pega a carteira do cliente verifica se tem o valor necessário e caso sim tira o valor do jornal de dentro da certeira do cliente, talvez isso não seja tão legal pois a Banca sabe muito sobre a carteira do cliente....