[Перевод] Руководство разработчика Prism — часть 3, управление зависимостями между компонентами
ОглавлениеВведение Инициализация приложений Prism Управление зависимостями между компонентами Разработка модульных приложений Реализация паттерна MVVM Продвинутые сценарии MVVM Создание пользовательского интерфейса Навигация Способы коммуникации между слабосвязанными компонентами
Приложения, основанные на библиотеке Prism, являются составными приложениями, потенциально состоящими из слабо связанных служб и компонент. Они должны взаимодействовать друг с другом так, чтобы предоставлять содержание пользовательскому интерфейсу и получать уведомления о действиях пользователя. Поскольку они слабо связаны, для обеспечения необходимой функциональности, необходим способ их взаимодействия и связи друг с другом. Для связи всех частей воедино, Prism приложения полагаются на DI контейнер. DI контейнеры уменьшают зависимости между объектами, предоставляя способ создания экземпляров классов и управления их временем жизни в зависимости от конфигурации контейнера. При создании объектов с помощью контейнера, он инжектирует в них необходимые зависимости. Если зависимости еще не были созданы, то контейнер в начале создает их и разрешает их собственные зависимости. В некоторых случаях, сам контейнер внедряется как зависимость. Например, при использовании Unity, в модули внедряется контейнер для того, чтобы они могли зарегистрировать в нём свои представления и службы. Есть несколько преимуществ использования контейнера: Контейнер устраняет потребность для компонента определять местоположение его зависимостей или управлять временем их жизни. Контейнер позволяет заменять реализации, не влияя на компоненты. Контейнер облегчает тестируемость, позволяя внедрять в объекты фальшивые зависимости. Контейнер упрощает обслуживание, позволяя легко добавлять к системе новые компоненты. В контексте приложения, основанного на библиотеке Prism, есть определенные преимущества контейнера: Контейнер разрешает зависимости модуля при его загрузке. Контейнер используется для регистрации и создания моделей представления и представлений. Контейнер может создавать модели представления и внедрять представления. Контейнер внедряет службы составного приложения, такие как менеджер регионов и агрегатор событий. Контейнер используется для регистрации специфичных для модуля служб со специфичной для модуля функциональностью. Читать дальше →