169 похожих чатов

Я чего спрашиваю, просто ни разу не делал свой класс

final😭
1. Какие плюсы final дает?
Не дает унаследовать класс - ок. Но, в чем реальный плюс? Дает понять что "у тебя не должно быть мысли наследовать этот класс"? Так-то следующим коммитом я могу снести final, если оно не в vendor.
2. как с phpunit тестировать классы зависящие от final класса? Я вижу следующие варианты:
- а. мокать интерфейс если final класс его имеет.
- b. Передавать весь сервис-контейнер в конструктор и в тесте мокать контейнер get(). - но, это хрень на мой вгзляд, нафига передавать весь контейнер если намного наглядней передать конкретные зависимости.
Так, все таки, как тестировать код зависящий от final класса? Или не должно быть такой ситуации когда код зависит от конкретного final класса, а должен зависеть только от интерфейса (пункт а)

4 ответов

16 просмотров

fesor же отвечал. Либо делаешь интерфейс, либо не ставишь final

1. Самоконтроль. Ты доверяешь себе? А всем коллегам? 2. Как на счёт классицизма?

https://ocramius.github.io/blog/when-to-declare-classes-final/

1. запрет расширения через наследование, если ты этого не предполагаешь на этапе проектирования класса 2. final вешается там где есть интерфейс либо не подразумевается что это что-то надо мокать (например ты не будешь мокать DateTime класс и расширять можешь не давать по дефолту).

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Карта сайта