В ответ на этот вопрос Java Interfaces/Implementation naming convention автор предложилJava: Интерфейс для одного класса
Так что, когда у Вас есть ситуация, когда у вас есть интерфейс и одной реализации, которая не однозначно специализированные из интерфейса вы, вероятно, Дон» t нужен интерфейс.
Но что делать, если вам нужно иметь интерфейс для этого одного конкретного класса, реализующего интерфейс, так что вы можете:
- Код для интерфейса
- Уметь издеваться объект в блоке тестов
Как справиться с этой ситуацией?
Ну, автор утверждает, что «возможно, не ...» не является правилом. – gtgaxiola
Издевательские объекты в модульных тестах не требуют интерфейса. Существуют библиотеки, которые имеют дело с объектами (mockito и т. Д.). – Ria
«Код для интерфейса» - это очень непонятная фраза. Для меня это означает создание интерфейсов, когда они вам нужны, а не объявление ваших списков как «ArrayList myList», но вместо этого использование «Список myList» и т. Д. Это определенно не означает создание бессмысленного интерфейса для каждого отдельного класса, когда вы знайте, что будет только одна реализация. Нет ничего хуже, чем увидеть «MyService» и один «MyServiceImpl». Если вы его называете «* Impl», вам не нужен интерфейс ... –