Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Java Magazine ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Video: Adaptadores e Fábrica Concreta Parametrizada - Curso Design Patterns - Parte 48
Nesta aula, retornaremos ao cenário de criação de adaptadores para sistemas externos, transformando nossa fábrica parametrizada em uma que lê qual classe instanciar a partir de uma propriedade do sistema.
Tempo: 24'21''
Mini-Resumo: Esta é a décima segunda e última parte da sétima vídeo aula do curso de princípios de design e design patterns. Nesta aula, retornaremos ao cenário de criação de adaptadores para sistemas externos, transformando nossa fábrica parametrizada em uma que lê qual classe instanciar a partir de uma propriedade do sistema.
Tecnologias Utilizadas: Java 6, NetBeans 6.5, Plugin UML para o
NetBeans
Palavras chaves: Design Patterns, Padrões de Projeto, Princípios de Design, GOF

4 COMENTÁRIOS
Fabiano Alves De Souza
Rodrigo, estou fazendo a implementação no Eclipse e tive dificuldade na implementação do arquivo project.properties.
Fiz de um modo alternativo mas não sei se é a solução correta. gostaria da sua opnião.
public class AdapterFactory {
private AccountingAdapter accountingAdapter;
private InventoryAdapter inventoryAdapter;
private static AdapterFactory adapterFactory = new AdapterFactory();
private AdapterFactory() {
try {
FileInputStream propertyFile = new FileInputStream( "project.properties");
Properties properties = new Properties(System.getProperties());
properties.load(propertyFile);
// set the system properties
System.setProperties(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
public static AdapterFactory getInstance() {
return adapterFactory;
}
public AccountingAdapter createAccountingAdapter() {
try {
String className = System.getProperty("accountingProperty");
accountingAdapter = (AccountingAdapter) Class.forName(className).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return accountingAdapter;
}
public InventoryAdapter createInventoryAdapter() {
try {
String className = System.getProperty("inventoryProperty");
inventoryAdapter = (InventoryAdapter) Class.forName(className).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return inventoryAdapter;
}
}
Fiz de um modo alternativo mas não sei se é a solução correta. gostaria da sua opnião.
public class AdapterFactory {
private AccountingAdapter accountingAdapter;
private InventoryAdapter inventoryAdapter;
private static AdapterFactory adapterFactory = new AdapterFactory();
private AdapterFactory() {
try {
FileInputStream propertyFile = new FileInputStream( "project.properties");
Properties properties = new Properties(System.getProperties());
properties.load(propertyFile);
// set the system properties
System.setProperties(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
public static AdapterFactory getInstance() {
return adapterFactory;
}
public AccountingAdapter createAccountingAdapter() {
try {
String className = System.getProperty("accountingProperty");
accountingAdapter = (AccountingAdapter) Class.forName(className).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return accountingAdapter;
}
public InventoryAdapter createInventoryAdapter() {
try {
String className = System.getProperty("inventoryProperty");
inventoryAdapter = (InventoryAdapter) Class.forName(className).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return inventoryAdapter;
}
}
[há +1 mês] -
Responder
Rodrigo Martins Pagliares
Fabiano,
após uma primeira passada de olho, vejo que voce enxergou o principal que é decidir qual objeto instanciar a partir de uma propriedade de sistema ou arquivo externo. Assim, não precisamos recompilar nosso código quando quisermos iniciar nossa aplicação com algum outro adaptador.
Resumindo, minha compilação mental do seu código não detectou nenhum problema ;)
Bons estudos.
após uma primeira passada de olho, vejo que voce enxergou o principal que é decidir qual objeto instanciar a partir de uma propriedade de sistema ou arquivo externo. Assim, não precisamos recompilar nosso código quando quisermos iniciar nossa aplicação com algum outro adaptador.
Resumindo, minha compilação mental do seu código não detectou nenhum problema ;)
Bons estudos.
[há +1 mês] -
Responder
Rodrigo Martins Pagliares
Se não me engano, na aula usei um arquivo com diversas configurações geradas pelo netbeans, mas poderia ser qualquer outro arquivo com as propriedades desejadas.
[há +1 mês] -
Responder
Fabiano Alves De Souza
Valeu Rodrigo.. e parabéns pela qualidade do curso!
[há +1 mês] -
Responder
Você está em:
canal Java
Publicidade
Este post faz parte de:
Curso(s):
Introdução a Design Patterns
Formações:
Formação Java web Developer
Curso(s):
Formações:
Rodrigo Martins Pagliares
Space do autor
Professor do curso de Bacharelado em Ciência da Computação da Universidade Federal de Alfenas, UNIFAL-MG. Possui os títulos de Mestre em Ciência da Computação pela Universidade Federal de Santa Catarina, UFSC, 2002 e Bacharel em Ciência da Computação pela Universidade Federal de Ouro Preto, UFOP, 19...
Space do autor

download
0
0
