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