#c# #switch-statement #refactoring
#c# #оператор switch #рефакторинг
Вопрос:
Этот фрагмент кода нарушает принцип Open и Closed, есть ли какой-либо способ, которым мы можем реорганизовать этот код, поскольку с каждым годом мы добавляем все больше обращений.
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;
}
}