У меня есть два объекта, одного класса, кождый из которых создается при нажатии кнопки, т.к. некоторые значения полей должны быть различны(это определяется тем, какая кнопка нажата)
| Код | private void ConservativeRegimeBuy_Click(object sender, RoutedEventArgs e) { _bBuy = true; bool isValid = CheckValidData(Regime); bool isSecure = CheckSecurity(); if(isValid && isSecure){ if((_consBuyStrategy == null) || (_consBuyStrategy != null && _consBuyStrategy.ProcessState == StrategyProcessStates.Stopped)){ _consBuyStrategy = new ConservativeRegime( _bBuy, _price, _dPrice, _division, _nLot, this) { Name= _name, Massa= _massa, }; _consBuyStrategy.ConsStratStop += StopConservativeStrategyBuy; _consBuyStrategy.Log += OnLog; _consBuyStrategy.PropertyChanged += OnStrategyPropertyChangedB; _consBuyStrategy.NewOrder += OnNewOrder; }
if (_consBuyStrategy.ProcessState == StrategyProcessStates.Stopped) { _consBuyStrategy.Start(); this.StPBuyOrderCons.Background = Brushes.Green; this.BuyOrderCons.Content = "Остановится"; } else { _consBuyStrategy.CancelActiveOrders(); _consBuyStrategy.Stop(); StopConservativeStrategyBuy(); } } }
|
| Код | private void ConservativeRegimeSell_Click(object sender, RoutedEventArgs e) { _bBuy = false; bool isValid = CheckValidData(Regime); bool isSecure = CheckSecurity(); if(isValid && isSecure){ if((_consSellStrategy == null) || (_consSellStrategy != null && _consSellStrategy.ProcessState == StrategyProcessStates.Stopped)){ _consSellStrategy = new ConservativeRegime( _bBuy, _price, _dPrice, _division, _nLot, this) { Name= _name, Massa= _massa, }; _consSellStrategy.ConsStratStop += StopConservativeStrategySell; _consSellStrategy.Log += OnLog; _consSellStrategy.PropertyChanged += OnStrategyPropertyChangedS; _consSellStrategy.NewOrder += OnNewOrder; } if (_consSellStrategy.ProcessState == StrategyProcessStates.Stopped) { _consSellStrategy.Start(); this.StPSellOrderCons.Background = Brushes.Red; this.SellOrderCons.Content = "Остановится "; } else { _consSellStrategy.Stop(); _consSellStrategy.CancelActiveOrders(); StopConservativeStrategySell(); } } }
|
| Код | private ConsRegime _consBuyStrategy; private ConsRegime _consSellStrategy;
|
как видите, код почти одинаков. Каким образом избежать дублирования?
|