Алго программная архитектура - PullRequest
0 голосов
/ 02 июля 2018

У меня есть компоненты торгового робота. Это следует архитектуре:

  1. Уровень данных - потоковая передача и форматирование данных
  2. Слой модели - обновляет модель и записывает события в очередь событий
  3. Уровень интеллекта - извлечение события, классификация (покупка, продажа, ноль), фильтрация, построение ордера (инструмент, покупка / продажа, остановка), запись в очередь на заказ
  4. Слой заказа - извлечение события, выбор размера (или отклонение), размещение заказа, запись в БД

Мой вопрос:

  • Каков наилучший шаблон проектирования для координации всех компонентов, участвующих в каждом слое?

Для (упрощенного) примера, я не думаю, что следующая практика будет хорошей практикой:

  1. Модель M создает экземпляр источника данных D
  2. M создает экземпляр Intelligence I
  3. I создает экземпляр Order O

Суть вышесказанного в том, что все создает все остальное, поэтому ничто не работает независимо (таким образом снижается избыточность).

Но я также не чувствую, что один класс, который создает все экземпляры и управляет взаимодействиями, является хорошей практикой.

Кто-нибудь может посоветовать?

1 Ответ

0 голосов
/ 03 июля 2018

Вот почему люди используют IoC, это решает эту проблему. https://en.wikipedia.org/wiki/Inversion_of_control

Посмотрите на свой стек языков / фреймворков и найдите библиотеку IoC, она, вероятно, решит большинство ваших проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...