Array
(
)

C# - Interfaces

Não
   - 17 jun 2011

eai galera...
Sou um pouco iniciante em programação... to com algumas duvidas, alguem pode me ajudar?
Eu to lendo um livro aqui de C# e eu to numa parte de interfaces e abstract class...
Já entendi totalmente como que funciona a interface, nela apenas se declara seus métodos ou propriedades, entendo que é para separar minha implementação da minha declaração... até ai OK...
porém, não consigo de maneira alguma enchergar qual é sua função, quando eu uso, e pra que eu uso.
porque eu ia querer fazer isso ao invez de escrever diretamente na minha class? Quando que eu uso elas? pra que eu uso elas? agora como usar elas eu ja entendi.

a abstract class eu entendo que ela pode ter tanto métodos abstratos como métodos concretos.. ela nao pode ser instanciada mais pode ser herdada, entendo isso... mais eu tenho a mesma duvida da interface... não sei QUANDO eu uso e PRA QUE eu uso...
por favor eu ja to uns 3 dias tentando entender... porém nao consigo enchergar isso...
se puder... me passa um exemplo bem compreensivel, se possivel, um exemplo didatico e outro que nos usamos hoje em dia...

valeu ai por quem puder me ajudar...

Não
   - 21 jun 2011

alguem ?

Não
   - 12 jul 2011

dexa pra la pode excluir isso aqui

Evandro Lopes
   - 13 jul 2011

Fala Fernando, blz? Perdeu a paciência? hahaha Seguinte sobre sua duvida de interfaces, ela tb pode ser chamada de Contratos, ou seja, vc define um contrato de como todos akeles que derivam dela devem se comportar. Vamos pensar um pouco, algo simples e besta. Vc tem uma classe de acesso a dados e uma de regra de negocio, suponha q teremos os seguintes métodos: Alterar, Excluir, Incluir, Buscar e Selecionar(Buscar e selecionar são coisas distindas, não se esqueça disso, selecione 1 clientes, busque 1 ou varios clientes). Vc gera um contrato com isso essas informações, e todo akele q derivar desse contrato deverá seguir a regra estipulada por ele, vc poderá criar métodos a parte nas classes, porém todas que derivarem do contrato deverão conter "Alterar, Excluir, Incluir, Buscar e Selecionar". Ex: #Código //Definindo um contrato public interface ICliente {   List<Cliente> Buscar();   Cliente Selecionar(int Codigo);   void Alterar(Cliente cliente);   int Inserir(Cliente cliente);   bool Excluir(Cliente cliente); }   //Camada de acesso a dados public class ClienteDAO : ICliente { public List<Cliente> Buscar()   {//implementação do método}   public Cliente Selecionar(int Codigo)   {//implementação do método}   public void Alterar(Cliente cliente)   {//implementação do método}   public int Inserir(Cliente cliente)   {//implementação do método}   public bool excluir(Cliente cliente)   {//implementação do método}   //Camada de negocio public class ClienteBLL : ICliente { public List<Cliente> Buscar()   {//implementação do método}   public Cliente Selecionar(int Codigo)   {//implementação do método}   public void Alterar(Cliente cliente)   {//implementação do método}   public int Inserir(Cliente cliente)   {//implementação do método}   public bool excluir(Cliente cliente)   {//implementação do método}     Utilizando as palavras d um amigo "Usamos Interface quando precisamos que classes de diferentes origens (herança) tenham métodos em comum e possam ser acessados através de uma mesma variável.
A classe abstrata é utilizada quando você quer que uma classe que herde dela implemente alguns métodos, mas que também possam ter métodos implementados na própria classe abstrata. "   Qualquer dúvida só gritar.   Abraços.

Evandro Lopes
   - 13 jul 2011

Mais uma coisa, contratos são muito utilizados, vc ainda vai ver muito deles, eles são ótimos desde que saiba utilizar. EU poderia dar muitos exemplos de onde utilizar contratos, como, porém percebo que é iniciante, então entenda o conceito dele, vc vai ver em breve que você vai usar muito.

Não
   - 14 jul 2011

ae cara vlw, entendo perfeitamente como funciona a interface, porem eu fico 1 poco confuso de qdo eu preciso usar
mais vou seguir seu conselho, entender o conceito e futuramente vou precisar dela.. :D
so iniciante msm :/
e foi mal pela grosseria de pedir pra excluir o topico :(
vlww

Não
   - 13 set 2011

desculpa, mas eu posso fazer uma ultima pergunta?
quando eu especificamente usaria uma interface? quais sao os beneficios que eu ganho usando?

Não
   - 16 set 2011

acho que entendi, usa-se interface quando eu tenho muitas classes com o mesmo comportamento, mas com implementações diferentes, entao eu declaro uma assinatura de um método que aquelas classes deveriam ter, mas isso não é o principal beneficio, mas sim o polimorfismo, onde eu declaro um método com um parametro do tipo da interface, e acesso aquele método. Pouco me importa a implementação ou quem ira responder aquele método, o que me importa é que algum objeto vai responder aquele metodo..
é mais ou menos isso né? percebi que há algumas coisas bem interessantes com interface, onde, esse exemplo que citei, eu nao posso reutilizar o codigo, imagine que eu tenho duas classes, que implementao a mesma interface, e tem a mesma implementação, eu to duplicando código, entao eu uso aquele padrao strategy certo?
seis acha q eu to bom com os conceitos de OO?
mas uma coisa OO usa-se na camada de negocio ? valeu!