Вы можете создать класс параметров следующим образом:
public class Parameters
{
public ObjectA {get; set;}
public ObjectB {get; set;}
}
Измените ваши методы для принятия таких параметров, как:
class StrategyA : Strategy
{
public override void DoSomething(Parameters parameters)
{
// Now use ObjectA
if(parameters.ObjectA.SomeProperty == true)
{ ... }
}
}
Таким образом, вы можете добавить дополнительные параметры, если ваши требования изменятся в будущем. Другой альтернативой является использование Dictionary<string, object>
, где вы можете сделать:
class StrategyA : Strategy
{
public override void DoSomething(Dictionary<string, object>parameters)
{
// Now use ObjectA
var someProperty = (bool)parameters["SomeProperty"];
if() ...
}
}