Как стать автором
Обновить

Комментарии 5

Но фантазии не хвтатит придумывать так классы.

Если нехватает фантазии, то просто добавляют Impl к имени интерфейса. Node -> NodeImpl.

что в Джаве не сделали миксинов

Методы с реализацией по-умолчанию (default) в интерфейсах появились аж в 8-ой Java (почти 10 лет назад).

Спасибо, что напомнил про Impl, я знал что кроме DefaultX еще делают XImpl, но забыл, что за 4 буквы. Не вижу разницы между делать это (VisitorControllerImpl) или обозначать интерфейс через IVisitorController. Обозначать через интерфейс более выгодно, потому что а) меньше букав, б) можно сразу найти в package explorer.

Методы с реализацией по-умолчанию в интерфейсах не катят. Если ты попробуешь, ты поймешь, почему. Я попробовал. Я понял. Наверное, ты просто не знаешь, что у дефолтных методов в интерфейсах нет чего-то, что есть у настоящих методов.

П.С. фантазии не просто не хватит, ее реально не будет. Ну вот класс у меня, CssNode. Как я должен разделить интерфейс/класс? Мой сотрудник должен сидеть думать над этим вопросом по часу в день? Никто не должен этим заниматься, когда можно просто поставить I.

Методы с реализацией по-умолчанию в интерфейсах не катят. Если ты попробуешь, ты поймешь, почему. Я попробовал. Я понял.

Я пробовал и работало отлично. Пожалуйста, выражайте свою точку зрения ясно и чётко, без намёков и увиливаний. Если что-то "не катит", то приведите наглядный пример кода с объяснением того, что именно "не катит".

Ну вот класс у меня, CssNode. Как я должен разделить интерфейс/класс?

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

Насчёт I vs Impl можете, например, на SO почитать - начинать holy war не вижу смысла https://stackoverflow.com/questions/541912/interface-naming-in-java

"Первый вопрос, который нужно себе задать: зачем". Слушай, ты вообще статью читал? Затем, что дизайн должен быть разделен от кода. Полное разделение на интерфейсы и классы-конструкторы, понятно? А ты наоборот предлагаешь добавлять дефолтные методы в интерфейсы ? И не работает то, что у интерфейса не может быть приватных (private) полей, или даже защищенных (protected) если уж на то пошло. Твоя ссылочка на какой-то стаковерфлоу для меня не аргумент. Это не холи вор, это не точка зрения -- это стандарт, писать I перед интерфейсом, почему -- читай выше (1 буква, не надо ничего придумывать, легко найти в древе проекта). Не видишь смысла что-то начинать потому что знаешь что все кто спорит на эту темы должны иметь их pay docked то бишь оштрафованы работодателем, если их босс увидит, что они смеют разглагольствовать на эту темы. Это не мнение, понятно, это стандарт индустрии. Проявите уважение к профессионалам.

За буквачки I и Impl давно принято бить в морду в приличном обществе) Надо именовать имя интерфейса и конкретную его реализацию. Если не хватает фантазии, то это беда. Посмотрите исходники того же spring, там такой фигни нету.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории