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.

Di starter, kode luar harus menembus order sampai ke alamat: train wreck order.getCustomer().getAddress().getCity(). Class Address (getCity()), Customer (getName(), getAddress()) dan getCustomer() di Order sudah ada dan tetap, begitu juga const order = new Order(new Customer('Budi', new Address('Jakarta'))); dan console.log ketiga.

  1. Di class Order, tambahkan method getCustomerName() yang mengembalikan nama customer: return this.customer.getName();.
  2. Di class Order, tambahkan method getCustomerCity() yang mengembalikan kota customer: return this.customer.getAddress().getCity();.
  3. Ganti dua console.log(null) dengan console.log(order.getCustomerName()); dan console.log(order.getCustomerCity());. Jangan tulis rantai getCustomer().getAddress() di kode pemanggil.

Output-nya tiga baris:

Budi
Jakarta
true

(true dari typeof Order.prototype.getCustomerCity === 'function'.)

Hint