Внедрение зависимостей в распределенную систему - PullRequest
1 голос
/ 23 апреля 2011

Как вы реализуете DI в распределенной системе, поскольку вы не можете встроить всю структуру DI с каждым распределенным компонентом.

Ответы [ 3 ]

5 голосов
/ 23 апреля 2011

В распределенной системе каждый автономный компонент сам по себе является отдельным приложением, поэтому должен иметь каждый собственный корень композиции , с которым вы соединяете компоненты. Если вы используете DI-контейнер, вы должны использовать шаблон Register Resolve Release .

Поскольку каждый компонент является приложением сам по себе , им даже не нужно использовать один и тот же контейнер (или даже одну и ту же платформу).

1 голос
/ 23 апреля 2011

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

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

0 голосов
/ 23 апреля 2011

Что ж, если структура DI отсутствует, то вы не можете ссылаться на нее прямо / косвенно, если ее нет ... Если вы хотите использовать DI в вашем распределенном компоненте, она должна быть доступна локально, поскольку удаленный DI не делает смысл, поскольку сами сервисы обычно не сериализуемы, потому что концепция не имеет смысла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...