Latihan 1: Command Pattern — Design Patterns

Latihan 1 dari materi Command Pattern di Design Patterns — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Lengkapi createCommandStack() supaya mengembalikan object dengan tiga method:

  1. execute(cmd): panggil cmd.do(), lalu simpan cmd ke riwayat (sebuah array).
  2. undo(): kalau riwayat kosong, kembalikan false. Kalau gak, ambil command terakhir dengan pop(), panggil undo()-nya, lalu kembalikan true.
  3. size(): kembalikan jumlah command di riwayat.

Variabel counter, dua command (counter += 5 dengan kebalikannya counter -= 5, dan counter *= 2 dengan kebalikannya counter /= 2), dan tiga console.log sudah ada di starter dan tetap. Console harus mencetak tiga baris ini, berurutan:

  1. 10
  2. 0
  3. false

Yang juga dinilai: satu command yang menambah 5 ke n dijalankan dua kali dengan execute, lalu n + "|" + st.size() + "|" + st.undo() + "|" + n harus menghasilkan 10|2|true|5.

Hint