Набор стратегий с разными параметрами

Как организовать несколько стратегий с одинаковой логикой, которые различаются набором параметров?

Предлагаем в таких случаях создать отдельную библиотеку, в которой поместить базовый класс. В базовом классе определить конструктор, который принимает на вход и инициализирует все параметры. Кроме этого, в базовом классе может быть определена вся торговая логика.

В классе-наследнике определяем конструктор по умолчанию, который передает конкретные параметры в базовый. Вся торговая логика уже реализована. Пример:


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 2 Votes

Comments

Comments are closed on this post.