Latihan 1: Dependency Injection — Design Patterns

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

Starter sudah membuat repo dan service, mendaftarkan Budi dan Ani, lalu mencetak empat baris; bagian itu tetap. Lengkapi dua bagian:

  1. createFakeRepo(): simpan const users = [] dan let nextId = 1 di dalamnya, lalu kembalikan object dengan:
    • users: array itu sendiri, supaya bisa dibaca dari luar (repo.users.length);
    • find(id): user dengan id itu, atau null kalau gak ada;
    • save(user): buat { id: nextId++, name: user.name }, push ke users, lalu kembalikan.
  2. class UserService:
    • constructor(userRepository): simpan ke this.userRepository. Jangan membuat repo sendiri di sini;
    • getUserName(id): panggil this.userRepository.find(id), kembalikan name-nya, atau 'Unknown' kalau hasilnya null;
    • register(name): kembalikan this.userRepository.save({ name: name }).

Console harus mencetak empat baris ini, berurutan:

  1. Budi
  2. Ani
  3. Unknown
  4. 2

Yang juga dinilai: dengan repo baru, register('Sari') lalu getUserName dengan id hasilnya memberi Sari, repo.users bertambah 1, dan getUserName(9999) memberi Unknown, jadi Sari|1|Unknown.

Hint