现下我手里有三个类。
Class SqlServerDataAccess;
Class OledbDataAccess;
Class OracleDataAccess;我要实现的是当满足某一条件时,实例化以上三个类中的一个,并调用这个类的静态方法。
比如:
if(a==1)
{
    new SqlServerDataAccess;
    SqlServerDataAccess.test();    
}
else if(a==2)
{
    new OledbDataAccess;
    OledbDataAccess.test();   
}
else
{
    new OracleDataAccess;
    OracleDataAccess.test();
}----------------------------------------------------
于是乎,我定义了一个Class DataAccess.
在这个类中,我定义了一个全局变量 DataAccess.
在调用时候,当我 DataAccess.test()的时候。走不走Class DataAccess的构造函数,如果走,如何在构造函数里做
DataAccess = new SqlServerDataAccess();
或者
DataAccess = new OledbDataAccess();
或者
DataAccess = new OracleDataAccess();是否要用到继承,可DataAccess不能同时继承这三个类。
还有什么其他方法吗?谢谢

解决方案 »

  1.   

    当我 DataAccess.test()的时候。走不走Class DataAccess的构造函数
    不走的
      

  2.   

    Class SqlServerDataAccess; 
    Class OledbDataAccess; 
    Class OracleDataAccess; 
    这三个类肯定要实现同一个接口
      

  3.   

    假设IDataAccess 为这3个类的接口
    就可以
    IDataAccess = new SqlServerDataAccess(); 
    或者 
    IDataAccess = new OledbDataAccess(); 
    或者 
    IDataAccess = new OracleDataAccess(); 
      

  4.   

    这个问题建议你看看设计模式中的Factory Method
    可以解决你的问题的
      

  5.   

    可以使用静态构造函数,同时把DataAccess做成静态类