Это в ответ на некоторые комментарии, сделанные Zed Shaw в его блоге давным-давно.
Затем эксперты отправятся в реализовать свою Пылающую Башню Вавилона без комментариев, ужасно сложный макет включал тесты, убедившись, что КАЖДЫЙ У ОДНОГО КЛАССА ИНТЕРФЕЙС, и заканчивая каждый класс с помощью "Impl" потому что, ну, вот что самое лучшее практика.
Я использую Spring и Google Guice в равных измерениях, и я заметил, что эти фреймворки используют постфикс Impl, но экономно. В моем коде я использую интерфейсы повсюду, потому что мне сказали, что это облегчает насмешку и т.д. У меня есть наивное понимание проблемы? (Возможно, макетные фреймворки могут работать с абстрактными классами или классами, я не знаю. Я никогда не пробовал). Для моих конкретных реализаций я выбрал соглашение Spring для префикса имени реализации со словом "По умолчанию".
e.g. BottleOpener (interface) is implemented by DefaultBottleOpener (class)
Какова наилучшая практика по этой проблеме?
UPDATE1 Я считаю полезным возвращать интерфейс из метода, потому что я всегда могу вернуть анонимный класс.