我的应用程序在运行时从文件读取,并从文件创建对象。
我正在使用工厂模式创建对象:
public class Factory :
{
public IValuesRepository CreateRepository(string repoType)
{
switch (repoType)
{
case "A":
{
return new ValuesRepositoryA();
}
case "B":
{
return new ValuesRepositoryB();
}
default:
{
throw new ArgumentOutOfRangeException("This repository type is not supported");
}
}
}
ValuesRepositoryA / B是在自己的项目中定义的,而工厂是在第三个项目中定义的,这两个库都具有依赖性。
ValuesRepositoryA / B依赖于计算机上安装的两个不同的第三方软件进行编译。
我的问题是,如果未在尝试编译的计算机上安装第三方软件A,则工厂将无法编译。
如果不编译,我想将其默认为错误情况。有可能吗?