アダプターを作成する必要があります。アダプタは、1つのJavaクラスまたは複数のJavaクラスである可能性があります。
あなたの例に基づくと、次のようになります。
public class DatabaseAdapter {
private DatabaseType type;
public DatabaseAdapter(DatabaseType type) {
this.type = type;
}
public ResultSet selectFirstTable(double badgeID) {
if (type == DatabaseType.Derby) {
String s = Double.toString(badgeID);
return derbySelectFirstTable(s);
} else if (type == DatabaseType.MySQL) {
int i = (int) badgeID;
return mysqlSelectFirstTable(i);
} else {
return null;
}
}
}
public enum DatabaseType {
MySQL, Derby
}
これをコーディングするもう1つのより良い方法は、インターフェースを使用することです。繰り返しますが、あなたの例を使用すると、コードは次のようになります。
public interface Database {
public ResultSet selectFirstTable(double badgeID);
}
public class MySQLDatabase implements Database {
public ResultSet selectFirstTable(double badgeID) {
int i = (int) badgeID;
// code to select first table in MySQL
}
}
public class DerbyDatabase implements Database {
public ResultSet selectFirstTable(double badgeID) {
String s = Double.toString(badgeID);
// code to select first table in Derby
}
}
コードのどこかで、データベースインターフェイスを正しいデータベースタイプで初期化します。
Database database = null;
if (type == DatabaseType.MySQL) {
database = new MySQLDatabase();
} else if (type == DatabaseType.Derby) {
database = new DerbyDatabase();
}