DevMedia
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login

Criando Interfaces com Métodos Genéricos

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

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você poderia comentar o que não lhe agradou?

Confirmo meu voto negativo
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


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 [...]

O que você achou deste post?
Conhece a assinatura MVP?
Serviços

Mais posts