Модель предметной области - отношение идентификатора к иерархическим объектам - PullRequest
1 голос
/ 29 января 2009

Излагая гипотетическую модель предметной области, я обнаружил, что задаюсь вопросом: будет ли лучший подход при связывании объектов предметной области заключаться в том, чтобы объект родительского домена содержал указатель (идентификатор дочернего объекта) или же это был бы более эффективный подход использовать дочерние объекты для построения композита в родительском объекте.

Я вижу плюсы и минусы каждого подхода, в основном компромисс между размером и сложностью, к чему он сводится. Я склонен больше склоняться к подходу отношения идентификаторов, так как я не ожидаю необходимости какой-либо ленивой загрузки.

Хотя доменные объекты не связаны напрямую, это простые POCO (.NET-эквивалент POJO). Они явно помечены как сериализуемые, так как есть большая вероятность, что они в конечном итоге перейдут между доменами приложений. По моему мнению, LINQ делает подход с использованием реляционных идентификаторов жизнеспособным, и я бы не стал рассматривать его вообще, если бы LINQ не был доступен.

Любые мысли приветствуются!

Редактировать: Еще пара мыслей, которые могут заставить меня склониться к подходу, основанному только на идентификаторах. Во-первых, это политика кэширования объектов. Вполне возможно, что родительский и дочерний объекты имеют разные TTL, как определено их политиками. Во-вторых, удержание ссылки может ограничить повторное использование объекта, поскольку один и тот же дочерний элемент может храниться у нескольких родителей - в случае данных многократного использования. Оба они также относятся к общему размеру сериализованных объектов.

1 Ответ

1 голос
/ 29 января 2009

Я использую оба на своих POCO. Я генерирую их со списком дочерних элементов в родительском классе и одним родительским экземпляром в дочернем классе.

...