N методов. Вообще такие ситуации - это нонсенс. Разработчики библиотек обязаны писать об этом в апгрейд гайд и менять название/неймспейс интерфейса, а пользователи - читать гайд и адаптироваться под изменения.
> Не буду писать сколько из них забивают, а сколько из них не знают или не понимают. Как после этого можно назвать подход "простым"?
Меняя название/неймспейс, ты почти гарантируешь то, что никто не проебеться. Так или иначе, я не собираюсь говорить, что фича говно, только потому что есть 0.001% дебилов, не понимающих, что нужно смотреть в апгрейд гайд когда апгрейдишь мажорные версии зависимостей.
> Я уже писал, что мешает. Мешает невозможность отказа от ненужных методов, добавленных в класс и инстансы класса через дефолтные методы интерфейсов.
што? Еще раз: я сказал, что композицию МОЖНО использовать вместе с наследованием. Причем тут интерфейсы?
Да и даже говоря об интерфейсах, я уже говорил, что это не "ненужные методы", а часть контракта.
> В трейтах этот момент уже не говно, я уже писал. Почему в трейтах не говно? Потому что от трейта ты можешь отказаться, а от деф. методов в интерфейсе — нет.
Не используй гавно-интерфейс? Не пиши гавно-интерфейс? Не понимаю, в чем проблема. Ты что, считаешь что можно физически ограничить разработчиков от написания гавно-кода? Нельзя.
Можно минимизировать риски проеба мидла+ за счет фич типа типизации и написания тестов, но если какой-то мудак захочет написать говно, то его удержит только ревью его пулл реквеста в мастер. Гавно можно написать не только с помощью дефолтных реализаций.
> Разве можно физически ограничить... Если в языке не дать реализовывать методы в интерфейсе, то это как раз физически ограничивает от написания говнокода в интерфейсе. Семь раз подумаешь и SPI сделаешь или явно мажор выпустишь вместо того, чтобы не парясь молча дефолтное чудо в кучу докинуть.
> ...что есть 0.001% дебилов, не понимающих, что нужно смотреть апгрейд гайд То есть вы сначала топите, что существуют джентльмены, которые не могут посмотреть апгрейд гайд, чтобы увидеть BC-добавление метода в интерфейс в релизе. И что для их комфорта обязательно надо запилить дефолтные методы во все языки как это специально для них сделали в Джаве... ...ведь они охвачены фобией мажорных релизов и после апдейта не могут прочитать ошибку компиляции method not implemented и вручную дописать у себя return false, так как у них лапки... ...а теперь их же называете дебилами, не читающими апгрейд гайд о неBC-переименовании дефолтного метода, так как при таком переименовании isSmth() их код молча без ошибки not implemented (то есть неявно) начнёт работать не совсем так? Забавно :)
Обсуждают сегодня