Должен ли я по-прежнему кодировать интерфейс, даже если у меня ТОЛЬКО будет ОДНА реализация? - PullRequest
11 голосов
/ 05 октября 2009

Я думаю, что название говорит само за себя, ребята - зачем мне писать интерфейс, а затем реализовывать конкретный класс, если когда-либо будет только 1 конкретная реализация этого интерфейса?

Ответы [ 11 ]

0 голосов
/ 05 октября 2009

«Только когда-нибудь будет одна реализация» == знаменитые последние слова

Создание интерфейса с последующим выводом конкретного класса не требует больших затрат. Процесс этого может заставить вас переосмыслить свой дизайн и часто приводит к лучшему конечному продукту. И как только вы это сделаете, если вы когда-нибудь обнаружите, что употребляете эти слова - как это часто бывает - вам не придется об этом беспокоиться. Вы уже настроены. Принимая во внимание, что в противном случае у вас есть куча рефакторинга, и это будет боль.

Отредактировано, чтобы уточнить: я работаю в предположении, что этот класс будет распространяться относительно далеко и широко. Если это крошечный служебный класс, используемый одним или двумя другими классами в одном пакете, то да, не беспокойтесь об этом. Если это класс, который будет использоваться в нескольких пакетах несколькими другими классами, тогда мой предыдущий ответ применим.

...