четверг, 10 июля 2014 г.

Черновик. Ещё о кодогенерации

я сегодня такую чудную штуку сделал.. жаль не знаю с какого конца рассказать...
типа ORM, но для "схемы документа"..

документ из "схемы" мапится в "классы-обёртки"
ну типа xml (а точнее EVD) умеет прикидываться деревом классов
со статической типизацией

реально круто, вместо Doc.Attribute['Name'] := YYY
теперь пишу DocStub.Name := YYY

Мысль понятна?

Ну и по рекурсии...

Ну и ещё...

а мусорный код - я теперь примерно знаю как разруливать..
чтобы не было "страниц кода"...
лямбды кстати тому в помощь..
ну и примеси..
примеси это вообще "вещь" для напиливания функционала "на слои"...
сегодня - очередной раз убедился..
не знаю даже как сказать..
смотрите.. был Stream с методом SaveTo
над ним сделал обёртку с методом SaveTo
а потом сделал "список целых" с методом SaveTo
а потом stream заменил на список целых.. и ВСЁ срослось..
паруoverloda функций только добавил..
теперь хочешь Stream, хочешь "список целых".. и всё - прозрачно..

что значит в коде "сделал обертку с методом  SaveTo"
как это в коде будет выглядеть ?

Typedef Saveable с методом SaveTo
и Saveable передаю вместо Stream Или List
Ничего космического..
но разные объекты начинают казаться "одинаковыми"..

детали "обёртки"? ну это либо интерфейс, либо Object с дискриминантом
это если вкратце..

по сути похоже на паттерн "адаптер"..

Комментариев нет:

Отправить комментарий