我已经构建了一个云项目一个月。我的问题是:
我有 2 个类来连接 Ibm Web 服务。第一个类是主课,第二堂课是测试课。我在配置文件中为 appSetting 设置了一个键值对。
如果配置文件中的值为“TEST”,项目将使用测试类,如果值为“PROD”,项目将使用主类。当我改变配置中的值时,我不会改变所有地方。
我的经理建议我使用“接口(interface)”,但我不明白。
我怎样才能基本解决这个问题?
最佳答案
您的测试类和产品类都可以实现上述接口(interface)。如果您需要使用在配置文件中选择要使用哪个类的方法,您最好创建一个返回接口(interface)正确实现的数据工厂类。数据工厂读取配置文件并根据应用程序设置中的值返回实现接口(interface)的正确类。
在 C# 中执行此操作的示例(该概念在其他 oo 语言中也是相同的):
来自调用类:
SomethingFactory 工厂 = new SomethingFactory();
ISomething testOrProdObj = factory.GetCorrectImplementation();
var result = testOrProdObj.MyMethod();
在工厂类中:
公共(public)类 SomethingFactory
{
公共(public) ISomething GetCorrectImplementation()
{
//检查 appsettings 以决定实例化和返回哪个类(TESTSomething 或 PRODSomething)
}
}
接口(interface)的实现
公共(public)课 TESTSomething : ISomething
或
公共(public)课 PRODSomething : ISomething
关于testing - c# 如何从配置文件中选择测试或产品类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14099955/