всем привет) как считаете, https://github.com/dg/bypass-finals костыль или норм? придерживаюсь подхода "по дефолту везде final", но в тестах проблемы с моками
Final classes only work effectively under following assumptions:
- There is an abstraction (interface) that the final class implements - All of the public API of the final class is part of that interface
If one of these two pre-conditions is missing, then you will likely reach a point in time when you will make the class extensible, as your code is not truly relying on abstractions.
final по дефолту если у класса есть implements. иначе придется гарадить кастыли. Люди не насколько дурные что бы наследоваться так часто. Ну и еще идея - вдруг у тебя проблема с большим количеством зависимостей что ты так мокать все подряд любишь и не любишь интерфейсы
если ты с yii-никами работаешь и у них прям уж сласть как хочется сделать абстрактный Model от которого все экстендится или еще какой трэш - ну может быть дефолт не такой дурной
столкнулся просто, кастомную ретрай стратегию для мессенджера запилил, хочу такой юнит тест запилить, а там Envelope класс финальный, без интерфейса, эх( и вернулся к вопросу о final со своими реализациями проблем особо нет