В этой статье Айенде описывает, как сопоставить модель одного домена с несколькими физическими моделями данных. Можно ли расширить этот принцип так, чтобы отображение можно было выбирать динамически?
Так, например, представьте, что у нас есть сущность, которая может быть записана в одну и ту же физическую схему тремя способами в зависимости от ее текущего состояния, и давайте предположим, что независимо от статуса каждая сущность имела уникальный идентификатор.
Одним из решений было бы представление объекта в его различных состояниях тремя отдельными классами: по одному для каждого отображения. Затем сущность может быть загружена, и для изменения ее состояния сущность может быть сопоставлена с классом, представляющим одно из ее других состояний, а затем сохранена обратно в схему, используя другое сопоставление.
Мне было интересно, возможно ли вообще иметь один и тот же объект, представленный одним классом, который содержит флаг состояния (вроде как дискриминатор), и любое сохранение в схеме выберет соответствующее отображение на основе значения флаг статуса.
Надеюсь, это имело смысл!
Большое спасибо.