Usuário com melhor resposta
Dúvida sobre Dependency Injection

Pergunta
-
Boa tarde estava lendo um artigo sobre 'Dependency Injection', no qual achei muito interessante.
Mas surgiu algumas duvídas referente a forma que ela foi feita.
O Autor criou uma Interface e implementou duas classes, até ai tudo normalIDomainObjectInterface interface pública { string Name {get;} } public class ImplementationClass1 : IDomainObjectInterface { public ImplementationClass1(){} public string Name { get { return "Implementation Class 1"; } } } public class ImplementationClass2 : IDomainObjectInterface { public ImplementationClass2(){} public string Name { get { return "Implementation Class 2"; } } }mentation Class 2"; } }}
Aqui ele cria uma 'Fabrica', que faz a instancia do objeto de acordo com a propriedade que está configurada no arquivo
[config.xml], é aqui que surgiu minha duvida.
É viavel utilizar dessa forma eu nunca tinha visto algo parecido, é recomendado? existe outras forma de realizar essa
mesma funcionalidade?class ConsoleRunner { static void Main() { // 1. Abre o arquivo de configuração e criar um novo // Fábrica, leitura nas definições de objetos using (Stream stream = File.OpenRead("config.xml")) { // 2. Criar um novo objeto de fábrica XmlObjectFactory xmlObjectFactory = new XmlObjectFactory(stream); // 3. Chamar meu classe de fábrica com a etiqueta genérica para o objeto // Que é solicitado. IDomainObjectInterface domainObjectInterface = (IDomainObjectInterface)xmlObjectFactory. GetObject("DomainObjectImplementationClass"); // 4. Use o objeto como qualquer outra classe de concreto. Console.WriteLine("My name is " + domainObjectInterface.Name); } } }
Arquivo de configuração.
<?xml version="1.0" encoding="utf-8" ?> <objects xmlns="http://www.springframework.net"> <object name="DomainObjectImplementationClass" singleton="false" type="ImplementationClass1, SpringDIExample" /> </objects>
Segue o link do artigo 'http://msdn.microsoft.com/en-us/magazine/cc163739.aspx'.
Desde já obrigado.
Respostas
-
Boa noite,
Como não tivemos movimentações no Tópico a mais de 6 meses, estou finalizando o mesmo.
Qualquer dúvida abrir outro tópico, um abraço.
Att,Luiz Henrique Lima Campos
Microsoft MVP,MCT,MCC,MCDST,MCSA,MCSA+M,MCTS e MCITP
Moderador no Microsoft Community e TechNet Forums e Membro do TechNet Wiki Community Council
Visite o meu blog: http://luizhenriquelima.wordpress.com
Me siga no twitter: @luizlima
**Ajude a melhorar o sistema de busca do fórum.Marque a(s) resposta(s) que foram úteis**- Marcado como Resposta Luiz Henrique Lima Campos [MVP]MVP, Moderator quarta-feira, 30 de julho de 2014 02:09
Todas as Respostas
-
-
Boa noite,
Como não tivemos movimentações no Tópico a mais de 6 meses, estou finalizando o mesmo.
Qualquer dúvida abrir outro tópico, um abraço.
Att,Luiz Henrique Lima Campos
Microsoft MVP,MCT,MCC,MCDST,MCSA,MCSA+M,MCTS e MCITP
Moderador no Microsoft Community e TechNet Forums e Membro do TechNet Wiki Community Council
Visite o meu blog: http://luizhenriquelima.wordpress.com
Me siga no twitter: @luizlima
**Ajude a melhorar o sistema de busca do fórum.Marque a(s) resposta(s) que foram úteis**- Marcado como Resposta Luiz Henrique Lima Campos [MVP]MVP, Moderator quarta-feira, 30 de julho de 2014 02:09