我已经建立了一个月的云项目。我的问题是:
我有 2 个类可以连接到 IBM Web 服务。第一课是主课,第二课是测试课。我在配置文件中为 appSetting 设置了一个键值。
如果 configFile 中的值为“TEST”,则项目将使用测试类,如果值为“PROD”,则项目将使用主类。当我更改配置中的值时,我不会到处更改。
我的经理给了我使用“界面”的建议,但我不明白。
我怎样才能基本解决这个问题?
您的测试类和产品类都可以实现上述接口。如果您需要使用在配置文件中选择要使用的类的方法,最好创建一个返回正确接口实现的数据工厂类。数据工厂读取配置文件并根据应用设置中的值返回实现接口的正确类。
在 C# 中执行此操作的示例(该概念在其他 oo 语言中也是相同的):
从调用类:
SomethingFactory factory = new SomethingFactory();
ISomething testOrProdObj = factory.GetCorrectImplementation();
var result = testOrProdObj.MyMethod();
在工厂类中:
public class SomethingFactory
{
public ISomething GetCorrectImplementation()
{
//Do a check in appsettings to decide which class (TESTSomething or PRODSomething) to instantiate and return
}
}
接口的实现
public class TESTSomething : ISomething
或者
public class PRODSomething : ISomething