Этот фрагмент кода нарушает принцип Открытого и Закрытого, есть ли способ, которым мы можем реорганизовать этот код, поскольку каждый год мы добавляем больше случаев.
public ISampleDataEnhancer GetEnhancer(Dictionary<string, object> data)
{
var typeEnhancer = ((Data.BaseSampleData)data["DataObject"]).TypeOfEnhancer;
switch (typeEnhancer)
{
case "V2018.SampleA":
{
return new ADataEnhancer2018();
}
case "V2018.SampleB":
{
return new BDataEnhancer2018();
}
case "V2019.SampleA":
{
return new ADataEnhancer2019();
}
case "V2019.SampleB":
{
return new GRDataEnhancer2019();
}
default:
return null;
}
}