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
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
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
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);
}
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();
}
}
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
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.
Obrigado.
[há +1 ano] -
Responder
Cursos relacionados
Publicidade



