В моем текущем проекте используется Spring, и наш архитектор решил разрешить Spring управлять службами, репозиториями и Factory объектами, но НЕ объектами домена. Мы внимательно следим за развитием домена. Причиной не использования Spring для объектов домена является то, что Spring допускает только статическую зависимость. То, что я подразумеваю под действием статической зависимости, заключается в том, что зависимости указаны внутри xml-конфигурации, и они становятся "замороженными".
Возможно, я ошибаюсь, но сейчас я понимаю, что хотя мой домен использует интерфейсы для взаимодействия с объектами, но конфигурация Spring xml заставляет меня указывать конкретную зависимость. поэтому все конкретные зависимости должны быть разрешены во время развертывания. Иногда это невозможно. Большинство наших usecases основаны на введении определенного типа на основе данных времени выполнения или сообщения, полученного от конечного пользователя.
Большая часть нашего дизайна соответствует шаблону команды. поэтому, когда мы получаем команду, мы хотели бы построить нашу модель домена и на основе данных, полученных от команды, мы вводим определенный набор типов в наш совокупный корневой объект. Следовательно, из-за отсутствия возможности Spring построить модель домена на основе данных времени выполнения мы вынуждены использовать статические методы Factory, сборщики и шаблоны Factory.
Может кто-нибудь, пожалуйста, сообщите, имеет ли проблема Spring описанный выше сценарий?
Я мог бы использовать AOP для ввода зависимостей, но тогда я не использую инфраструктуру Spring.