05. Avalonia UI Real World Dependency Injection Factory Pattern

05. Avalonia UI Real World Dependency Injection Factory Pattern

Видео: 05. Avalonia UI Real World Dependency Injection Factory Pattern

RuTube

Ленинский Букварь

Опубликовано: 17.04.2026 | Продолжительность: 00:31:45

00:00 Начало создания приложения Проверка основ приложения перед переходом к полноценному проекту. Создание пользовательского интерфейса с поддержкой MVVM. Планирование добавления внедрения зависимостей для разделения классов и повышения гибкости. 00:56 Добавление внедрения зависимостей Установка пакета Microsoft Dependency Injection. Перенос модели основного представления в внедрение зависимостей. 01:37 Концепция внедрения зависимостей Объяснение важности указания всех зависимостей в одном месте. Преимущества упрощения модульного тестирования и замены частей приложения. 02:14 Работа с коллекцией сервисов Добавление одноэлементного объекта в коллекцию сервисов. Создание поставщика услуг для предоставления сервисов. 03:07 Получение сервисов через внедрение зависимостей Использование методов getService и getRequiredService для получения сервисов. Проверка работы основной модели представления после внедрения зависимостей. 04:09 Внедрение дополнительных сервисов Внедрение модели просмотра домашней страницы в качестве синглтона. Разделение обязанностей между классами для повышения гибкости приложения. 05:44 Удаление ответственности из основной модели представления Удаление создания страниц из основной модели представления. Внедрение моделей просмотра страниц через внедрение зависимостей. 08:22 Проблемы с внедрением зависимостей Обсуждение проблемы использования анти-шаблонов при внедрении поставщика услуг. Необходимость создания временных объектов для оптимизации использования памяти. 09:24 Решение проблемы с временными объектами Создание временных объектов при каждом вызове сервиса. Избегание постоянного хранения экземпляров моделей просмотра. 10:15 Определение страниц другим способом Перечисление страниц для оптимизации использования памяти. Создание моделей просмотра только при необходимости. 10:45 Создание каталога и класса Создаём новый каталог data. Внутри каталога добавляем класс application page names в виде перечисления. Перечисление представляет собой список с целыми числами и текстовыми значениями. 11:09 Модель просмотра страниц Текущая страница представлена viewmodel которая не хранит информацию о странице. Добавляем класс page viewmodel наследующий от base viewmodel. В page viewmodel добавляем свойство page name для связи с названием страницы. 12:27 Настройка моделей просмотра Изменяем все viewmodel на page viewmodel. Создаём конструкторы для каждой страницы задавая название страницы. Проверяем название страницы в главной модели просмотра. 13:57 Генерация новых страниц Обсуждается необходимость генерации viewmodel при переходе на страницу. Рассматривается использование поставщика услуг для генерации моделей просмотра. Подчёркивается проблема статического использования поставщика услуг. 16:09 Фабричный шаблон Внедряем фабричный шаблон для генерации моделей просмотра страниц. Создаём папку factories и класс factory pages. Фабрика страниц создаёт модели просмотра на основе названия страницы. 18:17 Реализация фабрики страниц Внедряем фабрику страниц в модель основного представления. Привязываемся к функции которая генерирует модели просмотра при вызове. Функция получает доступ к поставщику услуг для генерации моделей. 20:44 Создание новых экземпляров Используем переключатель для создания новых экземпляров моделей просмотра. Каждый раз при вызове службы генерируется новый экземпляр модели. Удаляем старые экземпляры при изменении страниц. 21:19 Перехват по умолчанию Добавляем функцию перехвата по умолчанию для новых страниц. Функция перехвата удаляет старые модели при появлении новых страниц. Обеспечиваем доступ к зависимости для вызова функции генерации моделей. 22:23 Внедрение зависимостей в конструкторе В конструкторе используется внедрение зависимостей через коллекцию. Создаётся функция-фабрика PageViewModelFactory которая возвращает PageViewModel. Фабрика сохраняется как частная функция доступная только для чтения. 22:56 Работа с фабрикой страниц Фабрика страниц представлена как функция-делегат которую можно вызывать через invoke. При вызове invoke выполняется метод который создаёт PageViewModel на основе имени страницы. 24:11 Упрощение кода с помощью нового синтаксиса C В новом синтаксисе C упрощается передача свойств в конструктор. Создаётся закрытый элемент factory для фабрики страниц. Функция getPageView используется для получения PageViewModel по имени страницы. 26:57 Преимущества внедрения зависимостей Внедрение зависимостей усложняет работу но обеспечивает чистоту классов. Модель основного представления чётко определена и легко тестируется. Фабрика страниц должна знать имена всех страниц приложения. 27:54 Анализ работы кода с точками останова 29:47 Принципы внедрения зависимостей 30:45 Заключение и планы на будущее,

#

Категория видео: Разное

коты воители°эдит ласточка°
Смотреть
ч и ск3
Смотреть
Channel77717541
  2026-04-18 в 02:28:50
2026-04-17T23:31:03.814Z
Смотреть
Лидер Манифест
  2026-04-18 в 02:31:04
Видео от МЕТЕОР
Смотреть
10. Avalonia UI Real World (Mockup To Real Styles)
Смотреть
Ленинский Букварь
  2026-04-17 в 20:59:20
022. Avalonia UI - Audio Service Provider
Смотреть
Ленинский Букварь
  2026-04-16 в 20:24:21
021. Avalonia UI - Calculating Loudness
Смотреть
Ленинский Букварь
  2026-04-16 в 18:53:32
019. Avalonia UI - Capturing Microphone Audio
Смотреть
Ленинский Букварь
  2026-04-16 в 17:46:06
06. Avalonia UI Real World (Page Layout)
Смотреть
Ленинский Букварь
  2026-04-17 в 17:05:57
025. Avalonia UI - Live Audio Chart
Смотреть
Ленинский Букварь
  2026-04-17 в 00:01:26
07. Avalonia UI Real World (Control Themes)
Смотреть
Ленинский Букварь
  2026-04-17 в 17:56:16
020. Avalonia UI - Can ChatGPT Write Our Audio Code
Смотреть
Ленинский Букварь
  2026-04-16 в 18:48:00
02. Avalonia UI Real World (Fonts And Animations)
Смотреть
Ленинский Букварь
  2026-04-17 в 03:30:35