DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Criando Interfaces com Métodos Genéricos

Veja neste artigo como criar uma interface com métodos genéricos.

Em determinadas situações temos métodos com nomes e ações parecidas, mais que são de tipos diferentes.

Para evitar o copiar e colar (pode ser perigoso, acredite!) de métodos podemos criar uma interface, com métodos genéricos, fazendo com que nossas classes herdem dessa interface, implementando assim esses métodos (e repetindo-os, apenas trocando o tipo).

A Listagem 01 ilustra a criação dessa interface.

Listagem 01 – Interface com métodos genéricos


public interface IMetodos<T> where T : new()
        {
            string Excluir<P>(P id);
            int Inserir(T objModel);
            List<T> Consultar(T objModel);
            string Atualizar<P>(T objModel);
        }
Defino um nome qualquer para a interface, onde o T (o T indica que é um tipo de dado do Framework, sem especificar qual) herdar da palavra-chave new, indicando que é uma instância da interface. Note que a interface tem como parâmetro um tipo, definido por T.

Para mais informações sobre Interfaces Genéricas sugiro a leitura deste link.

Na Listagem 02 conferimos uma classe Produtos, herdando de nossa interface.

Listagem 02 – Classe herdando a interface criada e aplicando os métodos genéricos

public class ModeloProdutos
    {
 
    }

    public class Produtos : Conexao.IMetodos<ModeloProdutos>
    {
        public string Excluir<P>(P id)
        {
            throw new NotImplementedException();
        }
 
        public int Inserir(ModeloProdutos objModel)
        {
            throw new NotImplementedException();
        }
 
        public List<ModeloProdutos> Consultar(ModeloProdutos objModel)
        {
            throw new NotImplementedException();
        }
 
        public string Atualizar<P>(ModeloProdutos objModel)
        {
            throw new NotImplementedException();
        }
    }
Note que antes da classe criei outra classe, a ModeloProdutos, que nada mais é do que o tipo que a interface espera, para que a implementação funcione sem erros.

Os métodos foram gerados automaticamente, conforme é ilustrado pela Figura 01.



Figura 01 – Gerando os métodos implementados pela interface

Apenas lembrando que se uma classe herda de uma interface, ele deve, obrigatoriamente, conter os métodos implementados pela interface.

Assim finalizo a quick tip. Muito obrigado a todos!

Um abraço, e até o próximo artigo.

Wellington Balbo de Camargo
wellingtonbalbo@gmail.com

Wellington Balbo De Camargo
Tecnólogo em Análise de Sistemas, atua na área de Desenvolvimento .NET com aplicações Web a 2 anos, onde trabalha atualmente com a linguagem C# usando a tecnologia ASP.NET, no desenvolvimento em camadas usando o banco de dados SQL Server. Procura estudar cada vez mais para melhorar os conheciment...
O que você achou deste post?

    2 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Thomás Henrique B. Moreira
Cara, gostei muito do seus exemplos. So fiquei na duvida porque vc usou

no metodo Excluir e Atualizar. Vc pode explicar?

Valeu!
Abraço!

[há +1 ano] - Responder

 

[autor] Wellington Balbo De Camargo
Thomás, não entendi sua dúvida, pode explicar melhor?

Obrigado.
[há +1 ano] - Responder
 
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03