меня самого долго пинали базовым классом для саг, но объективно я не вижу ни единого варианта его замены на что-то более "адекватное", что не заставило бы клиентский код экстендить что-либо
А трейт с интерфейсом навесить дополнительно легко почти без ограничений. Ну то есть понятно, что уже звучит как хуета, но должна ли либа ограничивать возможность делать дичь которая не особо связана с либой)
есть секта адептов "выпилим аннотации, так это код фреймворка", но строго говоря это не имеет особого значения. Ни базовый класс, ни трейт не приведут тебя ни к каким проблемам. И с точки зрения разраба либы это самый дешёвый и безотказный вариант
А трейт с интерфейсом навесить дополнительно легко почти без ограничений. Ну то есть понятно, что уже звучит как хуета, но должна ли либа ограничивать возможность делать дичь которая не особо связана с либой)
а если у них в базовом классе метод с таким же именем?)
Скажем тебе ничего не стоит вынести функционал из твоего базового класса в трейт и вынести интерфейс. И обратная совместимость цела, и теперь противники наследования смогу затащить твой трейт)
Повторюсь - да хуета, но форсить нормальный код нужно чуток другими способами
Скажем тебе ничего не стоит вынести функционал из твоего базового класса в трейт и вынести интерфейс. И обратная совместимость цела, и теперь противники наследования смогу затащить твой трейт)
Повторюсь - да хуета, но форсить нормальный код нужно чуток другими способами