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

Зачем нужна трейты если есть абстрактный класс?

9 ответов

16 просмотров

Я тоже так и не понял

есть кейсы где абстрактным классом не решить проблему. нужно либо кучу лишнего кода городить либо трейт запилить.

Adel
Нет таких кейсов. Есть композиция

ну например, ты делаешь фабрики для моделей. У фабрики есть базовый класс. Но для одного ряда фабрик тебе надо добавить доп поведение. А для другого ряда фабрик другое поведение. И у тебя есть варианты: 1) Копипастить 2) Создавать x промежуточных родительских классов 3) Запилить трейты, подмешивающие поведение в класс. 4) ?

Adel
Создать отдельный обьект

Можно, но иногда это оверинжениринг и гораздо изящнее получается трейтами разрулить. Не частые кейсы, но они встречаются, в том числе в коде самого ларавель. Не вижу ничего плохого) инструмент добавили явно не просто так чтоб им не пользоваться 🙂

Sergey Shitikov
Можно, но иногда это оверинжениринг и гораздо изящ...

просто некоторые ленятся сделать нормально.

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта