Является ли хорошей практикой делать интерфейсы даже тогда, когда класс не планируется заменять?

Доброй ночи.
Речь о 2м и 5м принципах SOLID. Например, у меня есть класс A, который гарантированно будет один в программе, и получается, что классы, которые его используют, зависят от деталей, а не от абстракций (ведь у класса A нет интерфейса - зачем он, если класс один). Кроме того, класс А специально создан так, чтобы быть связующим звеном между классами меньшего уровня абстракции, которые уже могут быть заменяемы.

Стоит ли стремиться к полному соблюдению данных принципов, создавать интерфейс даже если он гарантированно будет реализован лишь единожды?

Заранее спасибо.
  • Вопрос задан
  • 441 просмотр
Решения вопроса 1
@kttotto
все, что .NET
Нет, не надо. Не нужно усложнят проект там где это не требуется.
Есть правило первой пули: сначала Вы пишите максимально просто и только когда приходят первые изменения, которые требуют абстракции, тогда только Вы ее выделяете.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@ImSorry
В этой статье хорошо написано, когда нужен интерфейс и зачем он нужен
sergeyteplyakov.blogspot.com/2014/12/what-are-inte...
А от себя добавлю, что фанатичное придерживание принципов SOLID может привести к обратному, а именно увеличению сложности проекта.
Ответ написан
@red-barbarian
принцип инверсии - самый крутой принцип.
разработка начинается с головы. Т.е. если у вас задача проектировать программу, то вы начинаете строить ее с самого главного - ее бизнес логики. Вы не будете знать какие сущности логика будет использовать. Это возникнет из процесса. Поэтому, все что бизнес-логике нужно вы определяете интерфейсами.
В таком случае получится, разбиение логики и сущностей которые ее обслуживают.
из-за того, что первая меняется быстро и часто (по разным причинам, даже не зависящих от девелопера) это разбиение очень полезно. Главное, можно отдать разработку обслуживания другим людям, мы не в курсе библиотек которые будут применяться (и можем менять из), мы легко можем тестировать свою логику.
Примерно так.
Интерфейсы хорошо применять на границах слоев программы. Это дает возможность тестирования и разбиения.
Ответ написан
Maksclub
@Maksclub
maksfedorov.ru
Абстракция зло, но необходимое зло... если нет необходимости, то...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 160 000 до 210 000 руб.
ProfitClicks Краснодар
от 80 000 руб.
GXB Development Йошкар-Ола
от 80 000 до 150 000 руб.