Skip to content

Architecture

Romutchio edited this page Mar 28, 2019 · 1 revision

Архитектура

TaskGenerator хранится в БД, при этом он сохраняется так, чтобы десериализовать его можно было в конкретный генератор, например TemplateGenerator или HistoryGenerator.

Конкретно про TemplateGenerator — Шаблонный генератор сам для себя шаблон — и это революция, Джонни**!** Предполагается, что сериализуется конкретно тип конкретного темплейтГенератора и в нем будут нужные поля, т.е. в БД он выглядит просто как набор нужных полей для конкретной логики. А если захотим сделать новый, тоже шаблонный, но немного другой генератор, то сделаем наследником, ведь все наследники (по принципу замещения Лисков) подойдут там, где использовался этот.

Таким образом, левел-дизайнер в БД:

  • создает Топик;
  • создает в нем Уровни;
  • в каждом описывает Генераторы, пользуясь тем, как этот генератор должен быть описан из описания генератора, Ы

Все это получаем, если мерджим вместе сущности Домена и БД, но можно этого избежать, если воспользоваться предложением Егорова о конфигурации сериализации снаружи! Мы просто используем атрибут и будем как-то им указывать, что нужно сериализовать. Все равно сериализация через рефлексию и все такое. Таким образом мы отвязаны от конкретного хранилища данных.

Picture Picture