Я занимаюсь ООП довольно давно, и я несколько раз смутился с использованием интерфейсов после спора с коллегой за несколько дней до этого.Нужен ли мне интерфейс, если есть только одна реализация?
В принципе, я использую интерфейсы, когда применяю шаблоны проектирования, особенно когда есть несколько классов, реализующих общие функции.
В моем приложении есть Hibernate слой и несколько Sevices классов, как, например, UserService
CompanyService
и т.д. вопрос, был ли держать нас, отдельные интерфейсы также для каждого класса обслуживания. Например, UserServiceContract
, CompanyContract
и т. Д.
Мой аргумент коллеги заключался в том, что нет необходимости иметь интерфейсы.
Я натолкнулся на то, что в этом учебнике также используются интерфейсы. Но нет единого интерфейса, который реализует несколько классов только один раз. example interface implentation
Преимущество использования интерфейсов в этой ситуации улучшило структуру кода. Да, есть функции IDE, которые показывают, какие методы доступны для класса. Но, я все еще хочу, чтобы ваши идеи ребят тоже об этом.
+1 для «вы пожелаете, чтобы вы были позже». И просто хочу упомянуть, что интерфейсы дают вам возможность изолировать ваши компоненты друг от друга, и это дает вам очень хорошее преимущество для модульного тестирования вашего кода –
ok, так что лучше, если бы у меня были интерфейсы, когда я начал классы Userervice , Но я уже завершил проект, но я думаю, что нет смысла возвращаться и создавать интерфейсы. Это верно? – newday
На самом деле проект не закончен. Мой совет: если вы решите, что хотите использовать DIP-подход, тем скорее, тем лучше. Позже будет сложнее внести необходимые корректировки. – Pablo