我已经构建了一个月的云项目。我的问题是:
我有两个类用于连接Ibm Web服务。第一类是主类,第二类是测试类。我将一个键值放在配置文件中的appSetting。
如果configFile中的值为“TEST”,则项目将使用测试类,如果值为“PROD”,则项目将使用主类。当我更改配置中的值时,我不会随处更改。
我的经理给了我建议使用“界面”,但我不明白。
我如何基本解决这个问题?
答案 0 :(得分:1)
您的测试类和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