Clean Architecture в проекте на PowerBuilder 2022R3
В соответствии с архитектурой Clean Architecture приложение разделено на слои. Каждому слою определен свой провайдер. Архитектура приложения реализует следующую цепочку событий:
Источник (window или объект) -> задача(Task) -> провайдер(объединение провайдеров) -> сообщение с результатом -> получатель результата (window или иной объект)
Все объекты делятся на генераторы сервиса и пользователей(потребителей) сервисов. Выделены следующие единицы:
- n_provider - объект, который предоставляет сервис любым пользователям(объектам) без их учета
- объекты-подписчики - потребители сервисов(n_union_subscriber), которые регистрируются в объединениях для получения/предоставления сервиса
- малые объединения подписчиков(n_smalln_union) - объект группы подписчиков(n_union_subscriber) для получения/предоставления сервиса
Регистрацию подписчиков и их объединений, а также специалистов, отмену регистрации осуществляет сервис локатор (n_servicelocator).
Регистрация объектов (наследников n_subscriber) объединениями проводиться по их имени.
Привязка и отвязка подписчиков (n_union_subscriber) к провайдерам осуществляется n_service_locator или самим провайдером. Отписка подписчиков сервис локатором проводится сразу от всех подписанных объектом провайдеров.
В данном проекте реализованы следующие провайдеры:
-
n_application_provider - провайдер приложения
-
n_window_union - объединение window
-
n_observable_union - объединение n_observable объектов
-
n_messenger_union - объединение для доставки сообщений объектам
-
n_thread_provider - провайдер выполнения потоков подписчиков
-
n_db_provider - провайдер транзакционных объектов
-
n_pool_provider - провайдер пула объектов
Описание
Использование Service Locator и Clear Architecture на PowerBuilder