Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Java: интерфейс для одного класса

Автор вопроса: gemaspОтветов: 1

В ответ на этот вопрос автор предложил Java Interfaces/Implementation именования

Поэтому, когда у вас есть ситуация, когда у вас есть интерфейс и одна реализация, которая не является однозначно специализированной из интерфейса, вам, вероятно, не нужен интерфейс.

Но что делать, если вам нужен интерфейс для реализации этого единственного конкретного класса, чтобы вы могли:

  1. Код для интерфейса
  2. Уметь имитировать объект в модульных тестах

Как справиться с этой ситуацией?

  • Ну, автор утверждает, что probably don't... не является правилом. gtgaxiola 27.03.2015
  • для имитации объектов в модульных тестах не требуется интерфейс. Есть библиотеки, которые работают с объектами (mockito и т.д.). Ria 27.03.2015
  • Код для интерфейса - очень неправильно понятая фраза. Для меня это означает создание интерфейсов, когда они вам нужны, а не объявление ваших списков как ArrayList myList, а вместо этого использование List myList и т. д. Это определенно не означает создание бессмысленного интерфейса для каждого отдельного класса, когда вы знаете, что будут только когда-либо быть одной реализацией. Нет ничего хуже, чем видеть MyService и один MyServiceImpl. Если вы называете его *Impl, вам не нужен интерфейс... David Lavender 27.03.2015
  • Если я правильно читаю OP, он задает более общий вопрос о том, разумно ли кодировать интерфейс, даже если это не строго необходимо. К сожалению, вариант ответа зависит от того, что я лично не фанат, но мы должны сделать поправку на читабельность и использование в будущем. 27.03.2015

javanaming-conventions

Ответы

Ответ 1 · рейтинг 1 · Community

Вы сами на него ответили: "Но что делать, если вам нужен интерфейс для "....

Если вам нужно иметь интерфейс (независимо от причины), то по определению вам нужно иметь интерфейс.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы