Отношения между моделью предметной области и идентификатором по сравнениюИерархические Объекты

StackOverflow https://stackoverflow.com/questions/493170

Вопрос

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

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

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

Любые мысли будут оценены по достоинству!

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

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top