Repository là lớp abstraction giữa domain logic và data source.
- Thay vì UI gọi trực tiếp API, bạn gọi
Repository.getUser(id)— method này ẩn đi việc data đến từ network, cache hay database. - Interface repository được định nghĩa trong domain layer; implementation trong data layer.
- Điều này giúp dễ dàng hoán đổi data source, hỗ trợ offline-first, và test bằng cách mock repository.