Crie objetos diferentes, dependendo do tipo

Tenho uma tabela de banco de dados que contém uma coluna chamada type. Para cada linha da coluna do banco de dados, tenho que criar um objeto, dependendo do tipo. No momento, eu uso as instruções if else para isso:

if (type.equals("object1")){
    Object1 object1 = new Object1();
}
else if (type.equals("object2")){
    Object2 object2 = new Object2();
}

m pouco melhor seria usar uma enumeração, pois o número de tipos é limitado, mas existe a possibilidade de permitir que a criação de um objeto dependa do valor da Strin

Estou aberto a sugestões que possam resolver meu problema de outra maneira do que estou tentand