Mengingat bahwa perubahan pada tanda tangan API / metode publik harus minimal untuk mencegah pemecahan kode klien yang menggunakan metode ini, saya bertanya-tanya apakah Hukum Demeter kurang berlaku untuk ini.
Contoh sederhana:
class Account() {
double balance;
public void debit(Transaction t) {
balance -= t.getAmount();
}
}
Perhatikan bahwa metode debit melewati objek Transaksi daripada hanya jumlah ganda ('Hukum Demeter', seperti yang saya mengerti, akan mengatakan untuk hanya meneruskan informasi yang diperlukan, dalam hal ini hanya jumlah, bukan objek Transaksi ... ). Alasan di balik ini, adalah karena metode di masa depan mungkin memerlukan beberapa properti Transaksi selain jumlah. Dari apa yang saya mengerti, ini akan mencegah melanggar metode tanda tangan dengan menambahkan parameter baru di masa depan.
Apakah ini menjadikannya pilihan yang masuk akal? Atau apakah saya melewatkan sesuatu?