Я планирую реализовать шаблон Inheritance Mapper для компонента приложения http://martinfowler.com/eaaCatalog/inheritanceMappers.html
Одна из функций, которые ему необходимы, - это то, что объект домена может ссылаться на большой список агрегированных элементов (10 000 других объектов домена).
Поэтому мне нужна какая-то коллекция с отложенной загрузкой, которая будет передаваться из совокупного объекта корневого домена другим объектам домена.
Чтобы мои (php) сценарии модели были организованы, я храню их в двух папках:
MyComponent\
controllers\
models\
domain\ <- domain objects, DDD repository, DDD factory
daccess\ <- PoEAA data mappers, SQL queries etc
views\
Но теперь я ломаю голову, задаваясь вопросом, где находится моя коллекция ленивой загрузки. Кажется, шагает оба слоя. Внутренне это своего рода преобразователь данных, внешне - объект домена.
Есть ли предложения / обоснования для размещения его в одном месте над другим?
- daccess = доступ к данным
- DDD = Domain Driven Design Patterns, Эрик Эванс - книга
- PoEAA = Шаблоны шаблонов архитектуры приложений, Мартин Фаулер - книга