В объектно-ориентированном компоненте, когда у вас есть только одна реализация, доступная для класса, и этот класс не «опубликован» для других компонентов, целесообразно ли иметь интерфейс и вместо этого работать с интерфейсом?
Я полностью ознакомлен с принципом проектирования «программирование для интерфейса», а также широко его использую.
В последнее время я заметил, что большую часть времени другая реализация (хотя возможная и имеющая смысл) никогда не требуется. В результате постоянной работы с интерфейсами код приложения будет иметь достаточное количество интерфейсов с одной реализацией для каждого, и интерфейс кажется своего рода накладным.
Вместо этого предпочтительнее просто работать с конкретным классом и вводить интерфейс только тогда, когда требуется вторая реализация? В любом случае, в настоящее время извлечь интерфейс с помощью IDE очень просто. И когда вводится новый интерфейс, ссылки на старый конкретный класс могут быть изменены, чтобы вместо этого использовать новый интерфейс.
Что вы думаете?