Информация об изменениях

Сообщение Re[2]: Передача лога о выполняемых действиях из подчиненного от 23.05.2019 9:06

Изменено 23.05.2019 9:07 es3000

Re[2]: Передача лога о выполняемых действиях из подчиненного уровня
Б>Что делает каждый из этих классов в цепочке? Для чего они нужны, каковы их обязанности?
Б>Что они принимают на вход и какой результат возвращают?

Что делает каждый из этих классов в цепочке? Для чего они нужны, каковы их обязанности?
Что они принимают на вход и какой результат возвращают?

Главная форма:
— таблица строк с колонками "Флажок, Касса, Результат выгрузки, Результат загрузки"
— Кнопки "Выгрузить", "Загрузить"
— по событиям от кнопок вызывает методы Презентера "ЗагрузитьДанные" и "ВыгрузитьДанные"
— при щелчке на колонке "Результат" таблице вызывает метод Презентера "Подробности"
Презентер — логика интерфейса — обрабатывает события от контролов формы
— Методы "ЗагрузитьДанные" и "ВыгрузитьДанные": создают список отмеченных касс и передают этот список методам Контролера с тем же названием
— Метод "КассаОбработана", который вызывается из Контроллера обновляет поля таблицы на форме (результат) для конкретной кассы
— Метод "Подробности": получает от Контроллера последнюю операцию с кассой и открывает форму "Подробный результат"
Контроллер "Обработка списка касс"
— Входные данные: список отмеченных касс
— подписка на событие "Касса обработана" Сценария
— При срабатывании события получает кассу, ее результат и отправляет Презентеру методу "КассаОбработана"
— При запросе от Презентера возращает ему последнюю операцию с кассой
Класс БЛ "Сценарий обработки касс по списку"
— хранит обработанных список касс
— хранит для каждой кассы последнюю выполненную операцию
— Метод "ОбработатьКассы":
— в цикле для каждой кассы проверяет настройки кассы
— создает экземпляр "Операции с кассой", вызывает его метод "Выполнить"
— вызывает подписчик на событие "КассаОбработана" с передачей параметров — Касса, Операция
Класс БЛ "Операция с кассой" (базовый):
— хранит Результат (в зависимости от операции есть дополнительные реквизиты у результата)
Класс БЛ "Выгрузка в кассу" — наследник "Операция с кассой""
— реализуют конкретную операцию — выгрузка (или загрузка)
— извлекает данные из БД
— вызывает методы класса "Обмен в формате ХХХ"
— сохраняет результат ("Успех" или "Ошибка")
— устанавливает дополнительные поля результата (количество всех товаров, итоговая сумма)
Класс "Обмен в формате ХХХ":
— знает какие файлы надо читать\записывать и в каком формате
— записывает \ читает даные
— конвертирует эти данные между форматом Бизнес-логики и форматом ХХХ

Журнал должен отображаться Презентером.
В этот Журнал должны попасть все сообщения о выполняемых действиях из нижележащих классов.
Например, в классе "Обмен в формате ХХХ" может быть такое сообщение:
Журнал.Отладка("Записываю файл kassa1.txt");
Журнал.Отладка("Файл kassa1.txt записан успешно");
Перехват всех исключений будет выполнен в методе "Сценарий.ОбработатьКассы" и второй раз в методе "Презентер.КассаОбработана".

Как протащить ссылку на Журнал с самого верха до самого низа?
Re[2]: Передача лога о выполняемых действиях из подчиненного
Б>Что делает каждый из этих классов в цепочке? Для чего они нужны, каковы их обязанности?
Б>Что они принимают на вход и какой результат возвращают?

Главная форма:
— таблица строк с колонками "Флажок, Касса, Результат выгрузки, Результат загрузки"
— Кнопки "Выгрузить", "Загрузить"
— по событиям от кнопок вызывает методы Презентера "ЗагрузитьДанные" и "ВыгрузитьДанные"
— при щелчке на колонке "Результат" таблице вызывает метод Презентера "Подробности"
Презентер — логика интерфейса — обрабатывает события от контролов формы
— Методы "ЗагрузитьДанные" и "ВыгрузитьДанные": создают список отмеченных касс и передают этот список методам Контролера с тем же названием
— Метод "КассаОбработана", который вызывается из Контроллера обновляет поля таблицы на форме (результат) для конкретной кассы
— Метод "Подробности": получает от Контроллера последнюю операцию с кассой и открывает форму "Подробный результат"
Контроллер "Обработка списка касс"
— Входные данные: список отмеченных касс
— подписка на событие "Касса обработана" Сценария
— При срабатывании события получает кассу, ее результат и отправляет Презентеру методу "КассаОбработана"
— При запросе от Презентера возращает ему последнюю операцию с кассой
Класс БЛ "Сценарий обработки касс по списку"
— хранит обработанных список касс
— хранит для каждой кассы последнюю выполненную операцию
— Метод "ОбработатьКассы":
— в цикле для каждой кассы проверяет настройки кассы
— создает экземпляр "Операции с кассой", вызывает его метод "Выполнить"
— вызывает подписчик на событие "КассаОбработана" с передачей параметров — Касса, Операция
Класс БЛ "Операция с кассой" (базовый):
— хранит Результат (в зависимости от операции есть дополнительные реквизиты у результата)
Класс БЛ "Выгрузка в кассу" — наследник "Операция с кассой""
— реализуют конкретную операцию — выгрузка (или загрузка)
— извлекает данные из БД
— вызывает методы класса "Обмен в формате ХХХ"
— сохраняет результат ("Успех" или "Ошибка")
— устанавливает дополнительные поля результата (количество всех товаров, итоговая сумма)
Класс "Обмен в формате ХХХ":
— знает какие файлы надо читать\записывать и в каком формате
— записывает \ читает даные
— конвертирует эти данные между форматом Бизнес-логики и форматом ХХХ

Журнал должен отображаться Презентером.
В этот Журнал должны попасть все сообщения о выполняемых действиях из нижележащих классов.
Например, в классе "Обмен в формате ХХХ" может быть такое сообщение:
Журнал.Отладка("Записываю файл kassa1.txt");
Журнал.Отладка("Файл kassa1.txt записан успешно");
Перехват всех исключений будет выполнен в методе "Сценарий.ОбработатьКассы" и второй раз в методе "Презентер.КассаОбработана".

Как протащить ссылку на Журнал с самого верха до самого низа?