Instanciando classes pelo nome com padrão de fábrica
Suponha que eu tenha uma lista de classesA, B, C, ...
que todos herdam deBase
.
Eu recebo o nome da classe como uma string do usuário, e quero instanciar a classe certa e retornar um ponteiro paraBase
. Como você implementaria isso?
Pensei em usar uma tabela de hash com o nome da classe como a chave, e um ponteiro de função para uma função que instancia a classe certa e retorna umBase *
.
No entanto, acho que posso usar o padrão de fábrica aqui e torná-lo muito mais fácil, mas não consigo me lembrar bem dele, então pensei em pedir sugestões.