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