我有2个这样的类尝试连接到mysql
这两个类有相同的方法有些不一样。
if (isRemote)
{
RemoteMySQL mySql = new RemoteMySQL();
}
else
{
MySQL mySql = new MySQL();
}
mySql.Connect();
当我声明mySql
这样mySql.Connect();
时,错误不会在当前上下文中退出。
答案 0 :(得分:4)
我会在你的情况下使用工厂设计模式。代码就像......
public interface IMySql
{
void Connect();
}
class RemoteMySQL : IMySql
{
public void Connect()
{}
}
class MySQL : IMySql
{
public void Connect()
{ }
}
在Factory.cs中,
public IMySql Factory(bool isremote)
{
if (isremote)
return new RemoteMySQL();
else
return new MySQL();
}
因此,当您想要使用Factory时,可以将代码用作:
var mysql = Factory(true);// remote case
mysql.Connect()