我在求职面试中被问到,是否可以针对以下问题实施简单的解决方案:
Series
,Open()
,Close()
Dataset GetDataSet( .. )
和Open()
对于所有数据库类型都相同。Close()
对每种类型的服务器的行为都不同Dataset GetDataSet()
和此:
static void Main(string[] args)
{
DBManager dbm = new DBManager();
dbm.getDataSet();
}
答案 0 :(得分:1)
尝试使用抽象基类,只需覆盖与基本实现(经典多态)不同的方法:
abstract class BaseDbManager {
public void OpenConn() {
//implementation goes here
}
public void CloseCon() {
//implementation goes here
}
public abstract DataSet GetDataSet(...);
}
然后为每种数据库类型使用继承的类:
class OracleDbManager : BaseDbManager {
public override DataSet GetDataSet(...) {
//implementation goes here
}
}
class MsSqlDbManager : BaseDbManager {
public override DataSet GetDataSet(...) {
//implementation goes here
}
}
等