Skip to content

Instantly share code, notes, and snippets.

@sunmeat
Created December 16, 2025 19:51
Show Gist options
  • Select an option

  • Save sunmeat/066b752264dd9f4dbc7858bdce20ee7c to your computer and use it in GitHub Desktop.

Select an option

Save sunmeat/066b752264dd9f4dbc7858bdce20ee7c to your computer and use it in GitHub Desktop.
ДЗ на IRepository

Впровадження залежностей в ASP.NET Core MVC. Сервіси

Модифікувати архітектуру раніше розробленого веб-додатка «Гостьова книга» таким чином, щоб:

  • Контролер взаємодіяв з базою даних виключно через об’єкт класу Repository, а не безпосередньо через об’єкт класу контексту даних (DbContext).
  • Робота з об’єктом класу Repository здійснювалася через інтерфейсне посилання IRepository.

Мета — забезпечити слабку зв’язність (low coupling) між класами, дотримуючись принципів інверсії залежностей (DIP) та полегшуючи тестування й підтримку коду.

Ключові переваги такого підходу

  • Контролер залишається тонким і відповідає лише за обробку HTTP-запитів
  • Бізнес-логіка та доступ до даних ізольовані в окремих шарах
  • Легке unit-тестування (можна мокати IRepository)
  • Можливість заміни EF Core на іншу технологію без змін у контролері чи сервісах
  • Дотримання принципів Clean Architecture та SOLID
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment