none
Interface RRS feed

  • Pergunta

  • Galera não consigo entender quando devo implementar interfaces no meu sistema. Alguém poderia me ajudar por favor ?

    Obrigado


    SirSmart

    sexta-feira, 28 de dezembro de 2012 14:06

Respostas

  • Uma vantagem é que você pode usar interface em métodos como sendo uma abstração de uma classe, como por exemplo:

    public interface ILampada{
         void Acende();
    }
    
    public class LampadaPequena: ILampada{
         public void Acende(){
              /implementação da lampada
         }
    }
    
    public class LampadaGrande: ILampada{
         public void Acende(){
              /implementação da lampada
         }
    }
    
    public class AcendedorDeLampada(){
         public void AcendeLampada(ILampada lampada){//repare que aqui você não utiliza uma classe concreta(LampadaPequena ou LampadaGrande) mas sim uma interface.
               lampada.Acende();
               Console.WriteLine("A lampada foi acessa");
         }
    }

    Deste forma você pode criar suas próprias classes que implementam a interface ILampada e assim você você pode tranquilamente usar a classe AcendedorDeLampada.

    O uso de interface tambem é essencial no uso de testes de unidade e injeção de código.



    http://www.linkedin.com/pub/murilo-kunze/44/191/455



    sexta-feira, 28 de dezembro de 2012 21:44
  • Leia este artigo do Luis Maia:

    http://www.devmedia.com.br/interfaces-x-classes-abstratas/13337

    Mas basicamente uma interface possui somente somente a assinatura dos metodos e propriedades (nao possui nenhum codigo de implementaçao) e deve ser usada para garantir o perfeito acoplamento entre duas aplicaçoes.

    Classes abstratas podem ter codigo de implementaçao mas nao pode ser implementadas (servem como protipo de uma classe) e por isso devem ser obrigatiramente herdadas.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    • Marcado como Resposta SirSmart quarta-feira, 2 de janeiro de 2013 21:31
    quarta-feira, 2 de janeiro de 2013 14:02
    Moderador

Todas as Respostas

  • Aqui tem um tutorial em ingles de como, quando  e porque usar Interces:

    http://www.codeproject.com/Articles/18743/Interfaces-in-C-For-Beginners

    Aqui uma introduçao em portugues

    http://www.linhadecodigo.com.br/artigo/2999/entendendo-interfaces-com-csharp.aspx

    e nosso colega Macoratti tem um excelente artigo sobre interfaces:

    http://www.macoratti.net/11/11/c_intf1.htm

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    • Sugerido como Resposta Murilo Kunze sexta-feira, 28 de dezembro de 2012 21:39
    sexta-feira, 28 de dezembro de 2012 14:17
    Moderador
  • William, poderia por favor tirar mais algumas duvidas sobre interface ? Por exemplo:

    Tenho a classe animal1, animal2 e uma Interface Icomida.

    Pelo que entendi, as classes animal1 e animal2 deve herdar a interface Icomida.

    Gostaria de entender melhor qual foi a vantagem de fazer uma interface sendo que as implementações estarão sempre nas classes ? Pelo que entendi a vantagem é apenas a assinatura do método (contrato)... é isso mesmo ou existe outras vantagens que não estou enxergando ?

    Obrigado


    SirSmart

    sexta-feira, 28 de dezembro de 2012 20:58
  • Uma vantagem é que você pode usar interface em métodos como sendo uma abstração de uma classe, como por exemplo:

    public interface ILampada{
         void Acende();
    }
    
    public class LampadaPequena: ILampada{
         public void Acende(){
              /implementação da lampada
         }
    }
    
    public class LampadaGrande: ILampada{
         public void Acende(){
              /implementação da lampada
         }
    }
    
    public class AcendedorDeLampada(){
         public void AcendeLampada(ILampada lampada){//repare que aqui você não utiliza uma classe concreta(LampadaPequena ou LampadaGrande) mas sim uma interface.
               lampada.Acende();
               Console.WriteLine("A lampada foi acessa");
         }
    }

    Deste forma você pode criar suas próprias classes que implementam a interface ILampada e assim você você pode tranquilamente usar a classe AcendedorDeLampada.

    O uso de interface tambem é essencial no uso de testes de unidade e injeção de código.



    http://www.linkedin.com/pub/murilo-kunze/44/191/455



    sexta-feira, 28 de dezembro de 2012 21:44
  • Desculpa usar o mesmo tópico, mas qual a diferença entre classe abstrata e interface ? Obrigado

    SirSmart

    quarta-feira, 2 de janeiro de 2013 09:50
  • Leia este artigo do Luis Maia:

    http://www.devmedia.com.br/interfaces-x-classes-abstratas/13337

    Mas basicamente uma interface possui somente somente a assinatura dos metodos e propriedades (nao possui nenhum codigo de implementaçao) e deve ser usada para garantir o perfeito acoplamento entre duas aplicaçoes.

    Classes abstratas podem ter codigo de implementaçao mas nao pode ser implementadas (servem como protipo de uma classe) e por isso devem ser obrigatiramente herdadas.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    • Marcado como Resposta SirSmart quarta-feira, 2 de janeiro de 2013 21:31
    quarta-feira, 2 de janeiro de 2013 14:02
    Moderador