Модифікувати архітектуру раніше розробленого веб-додатка «Гостьова книга» таким чином, щоб:
- Контролер взаємодіяв з базою даних виключно через об’єкт класу Repository, а не безпосередньо через об’єкт класу контексту даних (
DbContext). - Робота з об’єктом класу Repository здійснювалася через інтерфейсне посилання
IRepository.
Мета — забезпечити слабку зв’язність (low coupling) між класами, дотримуючись принципів інверсії залежностей (DIP) та полегшуючи тестування й підтримку коду.
- Контролер залишається тонким і відповідає лише за обробку HTTP-запитів
- Бізнес-логіка та доступ до даних ізольовані в окремих шарах
- Легке unit-тестування (можна мокати
IRepository) - Можливість заміни EF Core на іншу технологію без змін у контролері чи сервісах
- Дотримання принципів Clean Architecture та SOLID