Latihan 1: Abstract Factory Pattern — Design Patterns

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

Lengkapi function createThemeFactory(theme) supaya mengembalikan object dengan dua method pembuat, createButton(label) dan createInput(placeholder), yang hasilnya sesuai tema.

  1. Tema "light":
    • createButton(label) mengembalikan { kind: "button", label, bg: "#fff", color: "#000" }
    • createInput(placeholder) mengembalikan { kind: "input", placeholder, bg: "#fff", border: "#ccc" }
  2. Tema "dark":
    • createButton(label) mengembalikan { kind: "button", label, bg: "#000", color: "#fff" }
    • createInput(placeholder) mengembalikan { kind: "input", placeholder, bg: "#111", border: "#444" }
  3. Tema lain: langsung lempar new Error("Unknown theme") dari createThemeFactory, sebelum ada komponen yang dibuat.

Kode di bawah function sudah ada di starter dan tetap. Console harus mencetak empat baris ini, berurutan:

  1. #fff #000
  2. #111 #444
  3. Cari...
  4. Unknown theme (dicetak oleh catch)

Yang juga dinilai: createThemeFactory("neon") harus melempar error dengan pesan Unknown theme, dan createThemeFactory("dark").createButton("Kirim").label + "|" + createThemeFactory("dark").createButton("x").bg + "|" + createThemeFactory("light").createInput("Nama").border harus menghasilkan Kirim|#000|#ccc.

Hint