Какой паттерн проектирования лучше использовать при расчете финансовых индикаторов? Пишу робота для игры на бирже (просто pet-проект, изучаю C#), хочу корректно оформить работу с индикаторами технического анализа (скользящее среднее, стохастический осциллятор и пр.).
Упрощая, можно сказать, что каждый индикатор принимает на входе некоторую порцию обязательной информации (скажем, массив decimal), отображающей цены рассматриваемого инструмента за некоторый период времени. И каждый индикатор обязательно выдает выходной массив со значениями индикатора за этот же период времени. Но - у индикаторов есть различающиеся входные параметры; кому-то нужен дополнительный параметр типа int, кому-то - три дополнительных параметра типа double и т. д.
При помощи какого паттерна лучше оформить подобную дифференциацию, чтобы код был читаемым и структурированным?

11 Июл 2020 в 19:45
282 +1
0
Ответы
1

Один из наиболее подходящих паттернов для реализации данной задачи - это паттерн Стратегия (Strategy). Этот паттерн позволяет вынести алгоритмы из классов, которые их используют, и оформить их в виде отдельных классов, независимо от клиентского кода. Таким образом, вы можете создать интерфейс или абстрактный класс для всех ваших индикаторов, а затем реализовать конкретные стратегии для каждого индикатора. Каждая конкретная стратегия будет иметь свои собственные входные параметры и логику работы.

Кроме того, вы можете использовать паттерн Фабричный метод (Factory Method) или Абстрактная фабрика (Abstract Factory) для создания объектов индикаторов без необходимости знания о их конкретных типах.

Таким образом, комбинирование паттернов Стратегия, Фабричный метод и Абстрактная фабрика может помочь сделать ваш код более читаемым, структурированным и расширяемым для работы с финансовыми индикаторами в вашем pet-проекте.

18 Апр 2024 в 10:47
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир