Usuário com melhor resposta
Dúvida sobre recebimento de instância de classe em um elemento do tipo Interface.

Pergunta
-
Olaa,
Estava lendo sobre Injeção de Dependência e me deparei com uma situação que me chamou atenção, segue o código abaixo para uma melhor visualização:
- Código 01:
public interface IGasolina { bool ObterQuantidadeGasolina(); }
- Código 02:
public class Gasolina : IGasolina { public bool ObterQuantidadeGasolina() { // consulta se a quantidade de gasolina é suficiente para realizar o voo return true; } }
- Código 03:
using System; namespace DevBrasil { public class Program { static void Main(string[] args) {
// 1) DÚVIDA: // COMO PODE "iGasolina" receber o objeto do tipo Gasolina ? IGasolina iGasolina = new Gasolina();
// Gasolina é injetada no PainelVoo via interface IPainelVoo iPainelVoo = new PainelVoo(iGasolina); // PainelVoo é injetado no Comandante via interface Comandante comandante = new Comandante(iPainelVoo); comandante.LevantarVoo(); } } }
O Código completo se encontra no link : http://leandrorodriguess.net/post/2012/02/16/Injecao-de-Dependencia.aspx
Conforme mostra o código acima, como "iGasolina" que é do tipo Interface pode receber um objeto do tipo Gasolina ? Qual a justificativa técnica para a ocorrência de tal fato ?
Desde Já, Agradeço.
- Editado _dev sexta-feira, 20 de abril de 2012 19:27
Respostas
-
public class Gasolina : IGasolina
A classe Gasolina implementa a interface IGasolina, logo qualquer objeto da classe Gasolina pode ser acessado através da interface IGasolina...
Recomendação de leitura:
Head First Object-Oriented Analysis and Design
http://www.amazon.com/Head-First-Object-Oriented-Analysis-Design/dp/0596008678/
Abraços,
Caio Proiete
Caio Proiete
Microsoft MVP, MCT, MCPD, MCTS, MCSD
http://caioproiete.net- Marcado como Resposta _dev sábado, 21 de abril de 2012 11:40
Todas as Respostas
-
Nao se o que voce quer na tua interface tesn de criar parametro
public interface DataAccessLayer
{
void CreateParameters(int paramsCount);
}
depois uso assim numa outra clASS:
public void CreateParameters(int paramsCount)
{
idbParameters = new IDbDataParameter[paramsCount];
idbParameters = DBManagerFactory.GetParameters(this.ProviderType, paramsCount);
}este e so um exemplo.
Se o amor fosse pecado, quem seria INOCENTE?
-
public class Gasolina : IGasolina
A classe Gasolina implementa a interface IGasolina, logo qualquer objeto da classe Gasolina pode ser acessado através da interface IGasolina...
Recomendação de leitura:
Head First Object-Oriented Analysis and Design
http://www.amazon.com/Head-First-Object-Oriented-Analysis-Design/dp/0596008678/
Abraços,
Caio Proiete
Caio Proiete
Microsoft MVP, MCT, MCPD, MCTS, MCSD
http://caioproiete.net- Marcado como Resposta _dev sábado, 21 de abril de 2012 11:40
-
Prezado Caio Proiete,
Era justamente essa minha dúvida, sua resposta justamente tocou no ponto exato.Minha dúvida foi sanada.Muito obrigado pela atenção e tambêm pela leitura recomendade.
Obrigado a todos os outros que deram atenção ao post.
Grande abraço a todos.
- Editado _dev sábado, 21 de abril de 2012 11:41