私は現在、学校向けの小さなプロジェクトに取り組んでいます。私の Java アプリケーションではデータベースが必要で、アプリケーションでさまざまな種類のデータベースを使用できるようにしたいと考えています。そのため、現在、txt データベースと PostgreSQL を実装しています。将来的には、他のデータベース タイプを追加できるようになるはずです。XML や MySQL のように...
データベース インスタンスを作成するために、列挙型を使用するファクトリを設計しました。それは完全に機能しますが、私の意見ではあまり柔軟ではありません。それで、私はいくつかの調査を行いましたが、私にとって明確な本当に良い例は見つかりませんでした.
これは私の列挙型です:
public enum DatabaseType {
TXT,
SQL,
XML;
}
これは私の工場です:
public class DatabaseFactory {
public Database createDatabase(DatabaseType type, String databaseName) throws DatabaseException {
if(type.equals(DatabaseType.TXT)) {
return new FileDatabase(databaseName);
}else if(type.equals(DatabaseType.SQL)) {
return new SQLDatabase(databaseName);
}else if(type.equals(DatabaseType.XML)) {
return new XMLDatabase(databaseName);
}else {
//default
return new FileDatabase(databaseName);
}
}
}
私の目的は、ファクトリ自体に触れずに、将来のみ列挙型を編集することです。これで十分な柔軟性が得られるはずですが、どうすればこれができるかわかりません。