Étant donné que les modifications apportées à la signature API / méthode publique devraient être minimes pour éviter de casser les codes clients qui utilisent ces méthodes, je me demandais si la loi de Demeter est moins applicable à ceux-ci.
Un exemple simple:
class Account() {
double balance;
public void debit(Transaction t) {
balance -= t.getAmount();
}
}
Notez que la méthode de débit transmet l'objet Transaction plutôt que simplement le double du montant (la `` Loi de Déméter '', si je comprends bien, dirait de simplement passer les informations requises, dans ce cas, juste le montant, pas l'objet Transaction ... ). La raison derrière cela est que la méthode à l'avenir pourrait nécessiter d'autres propriétés de transaction en dehors du montant. D'après ce que je comprends, cela empêchera de casser la signature de la méthode en ajoutant un nouveau paramètre à l'avenir.
Est-ce que cela en fait un choix judicieux? Ou est-ce que je manque quelque chose?