Eu tenho um projeto grande com uma parte de driver e cerca de 5 bibliotecas executando várias tarefas associadas. Muitas das bibliotecas requerem acesso a dados de configuração 'globais' que são lidos de um banco de dados na inicialização pelo código do driver. Por motorista, quero dizer apenas a parte que contém a função principal.
Minha idéia sobre como lidar com isso foi criar uma classe de configuração com um método estático para obter os itens de configuração. Essa é a melhor abordagem? De que outra forma isso poderia ser alcançado?
por exemplo:
class config {
public:
static get_item(key);
private:
static values;
};
O design singleton é apropriado aqui?
fonte
Acho que esse é um dos momentos em que um Singleton é realmente a coisa certa a se fazer.
Em relação à interface da própria classe, você pode obter o nome da chave ou ter acessadores para os valores de configuração individuais. O último esquema oferece alguma conveniência (conclusão do IDE para um) e permite converter os valores de configuração nos tipos de dados corretos antes de usá-los. Ele também introduz alguma separação entre os usuários da classe config e sua implementação interna (o fato de que todos os valores de configuração são armazenados como, por exemplo, strings, é um detalhe de implementação que o usuário da classe não deve se preocupar).
fonte