【发布时间】:2020-03-27 05:47:51
【问题描述】:
我在部署静态工厂模式时经常卡在分支中,有没有办法让它比下面的代码更整洁:
private static TestEdition GetCurrentEdition(userconfig config)
{
if (config.Edition == Edition.typea)
{
return new TestEdition3(config);
}
else if (config.Edition == Edition.typeb)
{
return new TestEdition4(config);
}
return new UnsupportedEdition(config);
}
【问题讨论】:
-
使用多态性?
-
@CaiusJard - 他已经在使用多态性了。
-
呃;不。他具有多态能力,但是拥有一个巨大的 if 块来费力地测试并返回硬编码的不同子类型并没有利用这种多态性
-
仅供参考,这是static factory pattern。
标签: c# oop refactoring static-factory