Latihan 1 dari materi Dependency Injection di Design Patterns — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Demonstrasikan constructor injection.
Buat class UserService yang terima userRepository lewat constructor. Method:
getUserName(id) — panggil userRepository.find(id) dan return .name. Jika user tidak ada (null), return "Unknown".register(name) — panggil userRepository.save({ name }) dan return hasilnya.Buat juga createFakeRepo() untuk testing — in-memory implementation dengan method find(id) dan save(user) (auto-assign id, start dari 1). Property users array publik.
Tujuan: UserService TIDAK tahu apakah pakai database asli atau fake.