Не уверен, какой заголовок будет лучшим для этого вопроса, или даже если я проясню, но вот он:
Каков наилучший способ настройки сложных объектов, чтобы не приходилось извлекатьвесь граф объектов при первом обращении к родительскому объекту?
Например: Заказ
имеет клиента
строк заказа (много)
статус
дата исполнения
Вы бы создали Заказ со всеми его зависимыми объектами в качестве свойств или предоставили бы метод доступа для зависимых объектов?
пример:
Вариант 1:
класс Заказ
Вариант 2:
Класс заказа
- public GetCustomer():Customer
- public GetOrderLines():List of order lines
На мой взгляд, у каждого есть свои преимущества и недостатки:
Вариант 1: Диаграммы классов показывают отношения между различными объектами.Недостатком является то, что при получении объекта Order необходимо получить весь граф объектов (который может стоить дорого, а во многих случаях может оказаться ненужным).
Вариант 2: Потому чтокаждый объект извлекается с помощью вызова Get, вы можете отложить фактическое извлечение, когда объект необходим.Недостаток, по крайней мере, в диаграммах классов Visual Studio, вы больше не можете получить хорошие отношения между различными объектами.
Существуют ли другие шаблоны проектирования, которые могут выполнить то, что я пытаюсь более эффективно?