-
Notifications
You must be signed in to change notification settings - Fork 1
Architecture
TaskGenerator хранится в БД, при этом он сохраняется так, чтобы десериализовать его можно было в конкретный генератор, например TemplateGenerator или HistoryGenerator.
Конкретно про TemplateGenerator — Шаблонный генератор сам для себя шаблон — и это революция, Джонни**!** Предполагается, что сериализуется конкретно тип конкретного темплейтГенератора и в нем будут нужные поля, т.е. в БД он выглядит просто как набор нужных полей для конкретной логики. А если захотим сделать новый, тоже шаблонный, но немного другой генератор, то сделаем наследником, ведь все наследники (по принципу замещения Лисков) подойдут там, где использовался этот.
Таким образом, левел-дизайнер в БД:
- создает Топик;
- создает в нем Уровни;
- в каждом описывает Генераторы, пользуясь тем, как этот генератор должен быть описан из описания генератора, Ы
Все это получаем, если мерджим вместе сущности Домена и БД, но можно этого избежать, если воспользоваться предложением Егорова о конфигурации сериализации снаружи! Мы просто используем атрибут и будем как-то им указывать, что нужно сериализовать. Все равно сериализация через рефлексию и все такое. Таким образом мы отвязаны от конкретного хранилища данных.