24 июл. 2012 г.
Сохранение состояния бизнес-объекта
В случаях редактирования или удаления записи из набора данных бизнес-объекта сначала мы получаем ее тип с помощью метода GetCurrRecordClass и, если он отличается от типа самого бизнес-объекта, создаем отдельный экземпляр, в котором выполняем операцию. После чего порожденный бизнес-объект уничтожается.
Проблема в том, что у нас не предусмотрена передача состояния между исходным и созданным бизнес-объектами. Пример из жизни: идет удаление нескольких выделенных записей. В процессе, для каждой создается отдельный экземпляр БО. На одной из записей возникает ошибка. Мы хотим спросить пользователя: прервать весь процесс или продолжить, пропуская проблемные записи. Вопрос в том, как и где сохранить ответ пользователя, чтобы использовать его при отработке следующих по списку записей.
Найденное на скорую руку решение — добавить флаги в поле BaseState и копировать их после создания и перед удалением созданного бизнес-объекта — выглядит поверхностным. По-хорошему, следует ввести понятие порожденного бизнес-объекта и внутри него обрабатывать перенос состояния до и после выполнения операции.
Labels:
архитектура,
документация,
идеи,
проблема,
технология
Комментариев нет:
Отправить комментарий