Size: a a a

2020 February 19

ГМ

Геннадий Малинин in Delphi & Lazarus
Sergey Bodrov
Дженерики хороши для быстрой разработки прототипов, чтобы не заморачиваться созданием полноценных новых классов-контейнеров. А если-таки приходится заморачиваться, то нафиг такие дженерики. =)
Ну хз, у меня они часто используются в конечном результате
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Я использую дженерики для виртуальной таблицы
источник

AS

Alexey Shumkin in Delphi & Lazarus
Sergey Bodrov
Дженерики хороши для быстрой разработки прототипов, чтобы не заморачиваться созданием полноценных новых классов-контейнеров. А если-таки приходится заморачиваться, то нафиг такие дженерики. =)
И как бы, ещё избавляют от дублирования
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Таким способом я могу использовать один список на две различные визуальные таблицы как с dataset'ом, сохраняя при этом полную синхронизацию, но и независимую работу.
источник

SB

Sergey Bodrov in Delphi & Lazarus
Геннадий Малинин
Таким способом я могу использовать один список на две различные визуальные таблицы как с dataset'ом, сохраняя при этом полную синхронизацию, но и независимую работу.
Через интерфейсы можно сделать то же самое. Определяешь методы GetCount(), GetData(), SetData() и все. Таблица сама будет их дергать при отрисовке и редактировании.
источник

SB

Sergey Bodrov in Delphi & Lazarus
Мне дженерики не нравятся тем, что если требуется что-то больше, чем просто хранение данных - сортировка, поиск, фильтрация - то вся простота и элегантность теряется.
источник

RS

Renat Suleymanov in Delphi & Lazarus
Sergey Bodrov
Мне дженерики не нравятся тем, что если требуется что-то больше, чем просто хранение данных - сортировка, поиск, фильтрация - то вся простота и элегантность теряется.
Дженерик то может любой функционал иметь... ну и кстати на основе специализации дженерика можно сделать такой же класс наследуемый или даже снова сделать новй дженерик
источник

SB

Sergey Bodrov in Delphi & Lazarus
Renat Suleymanov
Дженерик то может любой функционал иметь... ну и кстати на основе специализации дженерика можно сделать такой же класс наследуемый или даже снова сделать новй дженерик
А что это дает? Какие преимущества? =)
источник

RS

Renat Suleymanov in Delphi & Lazarus
Sergey Bodrov
А что это дает? Какие преимущества? =)
Те, преимущества, которые дают дженерики: обобщения/шаблоны кода/прототипы в либах. Понятно же
источник

RS

Renat Suleymanov in Delphi & Lazarus
Renat Suleymanov
Те, преимущества, которые дают дженерики: обобщения/шаблоны кода/прототипы в либах. Понятно же
Тупо улучшается читаемость и ращмер кода еще
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Sergey Bodrov
Через интерфейсы можно сделать то же самое. Определяешь методы GetCount(), GetData(), SetData() и все. Таблица сама будет их дергать при отрисовке и редактировании.
Да, но это гараздо сложнее получается (через интерфейсы). А так полчуается очень быстро.

"Мне дженерики не нравятся тем, что если требуется что-то больше, чем просто хранение данных - сортировка, поиск, фильтрация - то вся простота и элегантность теряется." А пример таких запросов можешь привести?
источник

SB

Sergey Bodrov in Delphi & Lazarus
Renat Suleymanov
Те, преимущества, которые дают дженерики: обобщения/шаблоны кода/прототипы в либах. Понятно же
Синтаксический сахар не всегда преимущество. =)
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Вот у меня дженерик на основе TList
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
На основе его я делаю очень быстротаблицы с данными
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Он накладывает checkbox систему к элементам
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Ну и крутит все шестерни
источник

SB

Sergey Bodrov in Delphi & Lazarus
Renat Suleymanov
Тупо улучшается читаемость и ращмер кода еще
Читаемость - да. А размер кода под вопросом. Специализация женерика порождает новый класс под капотом. Не наследника, а копию класса.
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Ну и соостветствено простой и общий способ инициализации
источник

RS

Renat Suleymanov in Delphi & Lazarus
Sergey Bodrov
Читаемость - да. А размер кода под вопросом. Специализация женерика порождает новый класс под капотом. Не наследника, а копию класса.
Я имел ввиду конечно исходный код. В классическом случае дженерик не уменьшает при этом код бинарника, так как по сути это шаблоны кода...
источник

SB

Sergey Bodrov in Delphi & Lazarus
Геннадий Малинин
Вот у меня дженерик на основе TList
Я этот этап уже проходил. Потом были таблицы больше размера оперативки и извращения с mapped file, потом вернулся к обработчикам OnData.
источник