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