Replicar dados de configuração para outras classes
2 respostas
P
pedro.deus
Pessoal estou terminando um software e utilizei o JDOM para criar e ler o xml de configuração, mas necessito passar estes dados para outras classes por exemplo dados de banco de dados necessito passar os dados para a minha classe DB. Um amigo meu me deu a ideia de criar dentro dos mesmo arquivo.java uma class extends config e passar os dados o que eu acho que fica muito ‘gambiarra’;
Pessoal estou terminando um software e utilizei o JDOM para criar e ler o xml de configuração, mas necessito passar estes dados para outras classes por exemplo dados de banco de dados necessito passar os dados para a minha classe DB. Um amigo meu me deu a ideia de criar dentro dos mesmo arquivo.java uma class extends config e passar os dados o que eu acho que fica muito ‘gambiarra’;
Vc deve ter 3 objetos aqui : 1) o objeto que usa a configuração, 2 ) o objeto que É-A configuração e 3) o objeto que criou a configuração a partir do xml.
NO seu caso vc tem o DBConfig que é a configuração, um DBConfigBuilder que lê do arquivo e o DB que faz o papel de cliente.
Agora vc quer que mais do que um cliente use a mesma configuração. Existem várias opções. A mais simples é usar o padrão Registry. Portanto, vc criará um 4 tipo de objeto que é o registro da configuração.
vc pode combinar com o DBConfigBuilder se quizer assim
publicclassDBRegistry{privatestaticDBConfigdbConfig;privateDBRegistry(){}// construtor privado porque esta classe não é instanciávelpublicstaticvoidsetDBConfig(DBConfigconfig){dbConfig=config;}publicstaticsyncronizedDBConfiggetDBConfig(){if(dbConfig==null){dbConfig=newDBConfigBuilder().build();}returndbConfig;}}