Heyho,
У меня в голове какое-то время есть вопрос, который, надеюсь, кто-то из вас быстро решит:
Я большой поклонник MVC, ASP.Net Mvc в моем случае.
Что я заметил, так это шумиха по поводу интерфейсов. Кажется, что каждое видео, учебник и книга решают любую абстракцию с интерфейсами. Я адаптировал эти паттерны, понял, почему и как, и я в основном очень доволен этим.
Но я просто не понимаю, почему интерфейсы используются везде. Я почти никогда не видел, чтобы с абстрактными базовыми классами делалась какая-то абстракция, которую я не понимаю. Может я что то пропустил? Я знаю, что вы можете наследовать только от одного базового класса, хотя возможно несколько интерфейсов. Но интерфейсы имеют недостатки, особенно когда необходимо внести некоторые изменения, что нарушает ваши реализации.
До сих пор в моих проектах я выбирал интерфейсы только для совершенно разных классов.
Например, весь шаблон репозитория может быть выполнен с абстрактным базовым классом, все еще обеспечивающим тестируемость и взаимозаменяемость, или я что-то упустил?
Пожалуйста, укажите на ту часть, где мой мозг отстает:)