Latihan 1: Law of Demeter — Clean Code

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:

  1. Tambahkan method getCustomerCity() pada class Order yang mengembalikan kota customer.
  2. Tambahkan method getCustomerName() pada class Order yang mengembalikan nama customer.
  3. Di kode pemanggil, jangan gunakan rantai getCustomer().getAddress() lagi — panggil langsung order.getCustomerCity() dan order.getCustomerName().

Kelas Customer dan Address tetap ada sebagai internal detail.

Cetak:

  1. Nama customer (via order.getCustomerName())
  2. Kota customer (via order.getCustomerCity())
  3. true jika Order.prototype.getCustomerCity adalah function

Hint