Ley de Demeter para funciones

La ley de Demeter intenta minimizar el acoplamiento entre los módulos. Se trata de evitar que se alcanze en un objeto accesos a métodos de un objeto de terceros.



En este ejemplo no está permitido de acuerdo a la Ley de Demter


public void showBalance(BankAccount acct) {
Money amt = acct.getBalance();
printToScreen(amt.printFormat());
}



La variable acct se pasa como un parámetro, por lo que el GetBalance está permitido. Llamadas a amt.printFormat (), sin embargo, no lo es. Podríamos eliminar el acoplamiento de showBalance con algo como esto:


void showBalance(BankAccount b) {
b.printBalance();
}




Fuente : The Pragmatic Programmer; From Journeyman to Master

Comentarios