Dado que los cambios en la firma de API / método público deberían ser mínimos para evitar romper los códigos de clientes que usan estos métodos, me preguntaba si la Ley de Demeter es menos aplicable a estos.
Un simple ejemplo:
class Account() {
double balance;
public void debit(Transaction t) {
balance -= t.getAmount();
}
}
Tenga en cuenta que el método de débito pasa el objeto Transacción en lugar de solo la cantidad doble (la 'Ley de Demeter', según tengo entendido, diría que solo pase la información requerida, en este caso solo la cantidad, no el objeto Transacción ... ) La razón detrás de esto es porque el método en el futuro podría requerir algunas otras propiedades de Transacción aparte del monto. Por lo que entiendo, esto evitará romper la firma del método al agregar un nuevo parámetro en el futuro.
¿Esto lo convierte en una opción sensata entonces? ¿O me estoy perdiendo algo?