API /パブリックメソッドシグネチャへの変更は、これらのメソッドを使用するクライアントコードを壊さないようにするために最小限でなければならないので、デメテルの法則はこれらにあまり適用されないのではないかと思っていました。
簡単な例:
class Account() {
double balance;
public void debit(Transaction t) {
balance -= t.getAmount();
}
}
debitメソッドは、2倍の金額ではなくTransactionオブジェクトを渡すことに注意してください( 'Law of Demeter'は、私が理解しているように、必要な情報だけを渡すと言います。この場合、Transactionオブジェクトではなく、金額だけを渡します... )。この背後にある理由は、将来のメソッドでは、金額の他にいくつかのトランザクションプロパティが必要になる可能性があるためです。私が理解していることから、これは将来的に新しいパラメータを追加することによってメソッドのシグネチャを壊すことを防ぎます。
これはそれを賢明な選択にしますか?それとも何か不足していますか?