Как организовать несколько стратегий с одинаковой логикой, которые различаются набором параметров?
Предлагаем в таких случаях создать отдельную библиотеку, в которой поместить базовый класс. В базовом классе определить конструктор, который принимает на вход и инициализирует все параметры. Кроме этого, в базовом классе может быть определена вся торговая логика.
В классе-наследнике определяем конструктор по умолчанию, который передает конкретные параметры в базовый. Вся торговая логика уже реализована. Пример:
namespace WLRT.Strategyes
{
public abstract class MyBaseStrategy : WealthLab.WealthScript
{
private readonly double _koeff;
protected MyBaseStrategy(double k)
{
_koeff = k;
}
protected override sealed Execute()
{
if(_koeff==0) DoSmth();
else DoSmthElse();
}
}
public sealed class MyStrategy1 : MyBaseStrategy
{
public MyStrategy1() : base(1)
{
}
}
}
Thursday, May 17, 2012 2:43:00 PM
Categories:
c#
уровень 3
Rate this Content
3
2 Votes