C# 如何在使用原语时重构Switch case语句
这段代码违反了开放和封闭原则,随着我们每年增加更多的案例,我们有没有办法重构这段代码C# 如何在使用原语时重构Switch case语句,c#,switch-statement,refactoring,C#,Switch Statement,Refactoring,这段代码违反了开放和封闭原则,随着我们每年增加更多的案例,我们有没有办法重构这段代码 public ISampleDataEnhancer GetEnhancer(Dictionary<string, object> data) { var typeEnhancer = ((Data.BaseSampleData)data["DataObject"]).TypeOfEnhancer; switch (typeEnhancer)
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;
}
}
public ISampleDataEnhancer GetEnhancer(字典数据)
{
var typeEnhancer=((Data.BaseSampleData)Data[“DataObject”]).TypeOfEnhancer;
开关(增强器)
{
案例“V2018.Sam答辩”:
{
返回新的ADataEnhancer2018();
}
案例“V2018.样本B”:
{
返回新的BDataEnhancer2018();
}
案例“V2019.Samam辩诉”:
{
返回新的ADataEnhancer2019();
}
案例“V2019.样本B”:
{
返回新的GRDataEnhancer2019();
}
违约:
返回null;
}
}