@Venesuella
BlackJack и ...

Зачем используют интерфейсы при проектировании архитектуры приложения?

Разъясните незнающему, смотрю пример onion архитектуры на сайте metanit там применяются интерфейсы в OnionApp.Domain.Interfaces, не совсем понятно зачем интерфейсы там нужны?
  • Вопрос задан
  • 711 просмотров
Пригласить эксперта
Ответы на вопрос 6
@LEKAPb
Использование интерфейсов это всего лишь подход,который упрощает тестирование и позволяет более легко подменять реализацию, и еще много чего. С использованием интерфейсов проще создавать декомпозитные приложения с возможностью расширяемых модулей. Самый простой и понятный пример зачем нужны интерфесы, это создать систему подключаемых плагинов к приложению.www.vr-online.ru/content/c-plagin-za-5-sekund-3890
Ответ написан
Комментировать
Nipheris
@Nipheris Куратор тега C#
Я думаю интерфейсы в этом примере применяются как и везде - для контроля за связями между компонентами крупной системы и для обеспечения заменяемости компонент.

Раз уж так, разрешите мне прилинковать старый ответ: Какова роль интерфейсов в ООП?
Ответ написан
Комментировать
AxisPod
@AxisPod
Всё познается прям отлично на собственных ошибках, сделайте серьезный проект без интерфейсов и все вопросы отпадут.

А уж интерфейсы там именно для того, для чего они предназначены в ООП.
Ответ написан
Комментировать
@SergioMadness
Для полиморфизма
Ответ написан
Комментировать
Buzzz
@Buzzz
SharePoint | Office 365 | .Net Developer
Еще добавлю чутка. Сам делал недавно проект на mvc и есть такие вещи как "Unit of Work" и прямое разделение на слои приложения и как раз в сервисном слое без интерфейсов никак. Ну и как ранее упомянули полиморфизм и ООП. Если ничего этого не делать, то в итоге можно получить на добротном проекте большую какаху. Конечно в мелких проектах можно и без них, но мы все и сами знаем что все маленькое это только старт для заказчика и можно просто взять фальшстарт, а потом затрахаться с покрытием тестами т.к. Придется переписывать и пропадает расширяемость. А если там еще будет замута с сервисами в Azure то все вилы, так что делаем выводы и пытаемся сразу стартовать правильно.
Ответ написан
Комментировать
Интерфейс этот как бы чертеж класса с описанием того, что мы хотим что бы этот класс умел (кроме всего, что тут уже было сказано).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы