Как мне управлять слабосвязанными ассоциациями объектов, которые зависят от значений элементов, используя DI? - PullRequest
1 голос
/ 18 января 2012

Я ищу решение DI, которое помогло бы мне управлять ассоциациями объектов в ситуациях, когда необходимо устанавливать ассоциации объектов на основе других значений элементов в том же объекте.

enter image description here

Итак, учитывая, что объектная ассоциация, в которой объект Employee имеет свойство AddressId и соответствующее свойство ассоциации адресов, как я могу внешне управлять этими ассоциациями таким образом, чтобы каждый класс оставался слабосвязанным?

Моей первой попыткой было использование контейнера IoC. Я перестал использовать этот подход после того, как понял, что мне нужно расширить свой контейнер, чтобы он мог разрешать экземпляры типов на основе логики принятия решений, хранящейся в конфигурации IoC - это просто кажется плохой идеей. (Добавление контейнера в хранилище сработало бы, но сломало бы мой композиционный корень, так что это тоже не подлежит обсуждению.) С учетом сказанного, я не думаю, что это работа для контейнера IoC - убедите меня в обратном.

Я провел некоторое исследование и нашел статью Энди Бульки под названием Менеджер по отношениям . Дизайн Бульки предусматривает создание класса-посредника, который управляет ассоциациями. Я не уверен, что это лучший подход.

Я уверен, что кто-то в сообществе занимался этим раньше. Каковы лучшие практики DI, связанные с этой проблемой проектирования?

...