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