Я работаю над проектом со многими someInterface - someInterfaceImpl-pair. Несколько дней назад у меня появилась идея (возможно, вдохновленная чтением некоторого объектного кода c), чтобы включить реализацию по умолчанию в качестве внутреннего класса. Теперь некоторые коллеги (все с гораздо большим опытом java, чем я) увидели эту идею - обратная связь была шокирована и удивлена («это работает?»).Интерфейс с внутренней реализацией - хорошо или плохо
Я гугл вокруг немного, но не нашел много доказательств полезности этого «образца» (личный я люблю его): pdf-paper и a faq about code style
Что вы думаете - особенно в тех случаях, когда реализация «по умолчанию» тесно связана с интерфейсом.
Update я только что нашел это: Java Interface-Implementation Pair
(см принятый ответ)
Если реализация по умолчанию должна быть изменена, вы отбросите выпуск с новой реализацией - это не потребует изменения самого определения интерфейса. Вам также не нужно будет скрывать реализацию, если она * предназначена * для использования в качестве реализации по умолчанию. Я не вижу никаких * преимуществ * для того, чтобы делать это так, как описывает OP, но я не вижу негативов, которые вы вызываете как убедительно ужасные, - я просто не думаю, что имеет смысл объединить их вместе и * force * новый интерфейсный интерфейс для изменения реализации. –
Я собирался добавить ответ о базовой реализации vs abstract vs interface, вы избили меня до него :-) – ptyx
great minds ....;) cheers –