Latihan 1 dari materi Law of Demeter di Clean Code — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Kode di bawah melanggar Law of Demeter, kode eksternal harus tahu struktur internal order sampai ke address.city. Itu train wreck: order.getCustomer().getAddress().getCity().
Refactor supaya kode eksternal hanya bicara ke order:
getCustomerCity() pada class Order yang mengembalikan kota customer.getCustomerName() pada class Order yang mengembalikan nama customer.getCustomer().getAddress() lagi, panggil langsung order.getCustomerCity() dan order.getCustomerName().Kelas Customer dan Address tetap ada sebagai internal detail.
Cetak:
order.getCustomerName())order.getCustomerCity())true jika Order.prototype.getCustomerCity adalah function