Есть код:
public interface DfgDbAdaptee {
public boolean checkTableExists(String tableName) throws DfgFatalException;
}
public class DfgDbSqliteAdapter implements DfgDbAdaptee {
public boolean checkTableExists(String tableName) throws DfgFatalException
{
.....
}
}
public class DfgDbFMDBAdapter implements DfgDbAdaptee {
public boolean checkTableExists(String tableName) throws DfgFatalException
{
.....
}
}
public class DfgDb {
public static ??? Factory()
{
int dbType = DfgAppConfig.getDbType();
if (dbType == DfgAppConfig.DBTYPE_SQLITE){
return new DfgDbSqliteAdapter;
}else if (dbType == DfgAppConfig.DBTYPE_FMDB){
return new DfgDbFMDBAdapter;
}
throw new DfgConfigException("Unknown db type in config");
}
}
//и гдето в коде вызываем:
??? db = DfgDb.Factory();
db.checkTableExists(new String("lalala"));
Собственно вопрос — как описать тип который в коде выше показан как три вопроса? Суть в том что Factory должен возвращать любой класс имеющий реализацию интферейса DfgDbAdaptee.