Artigo do tipo Tutorial
Recursos especiais neste artigo:
Contém nota Quickupdate, Conteúdo sobre boas práticas.
Trabalhando com Interfaces em .NET
Neste artigo vamos explorar o uso de interfaces no .NET, explicando os principais conceitos à cerca da mesma e demonstrando através de um exemplo prático como podemos obter maior reuso e desacoplamento em nossos projetos com o uso deste recurso.O uso de interfaces é fundamental para conseguirmos aumentar a abstração de nossas aplicações e reduzir o acoplamento de nosso código, sendo este recurso fundamental para a compreensão de padrões de projeto e diversos outros conceitos importantes de engenharia de software.


Em que situação o tema é útil

Através do uso de interfaces podemos abstrair detalhes concretos deixando a aplicação mais independente destas implementações e com uma manutenção mais fácil, desta forma, os conceitos apresentados aqui são úteis no desenvolvimento de qualquer software orientado a objetos, além de ajudar o leitor a compreender melhor alguns frameworks disponíveis no mercado e algumas funcionalidades do próprio .NET.

A orientação a objetos dispõe de recursos que nos permitem aumentar a abstração de nossas aplicações, reduzindo o acoplamento e aumentando o reuso da mesma, tornando nossos códigos mais legíveis, aderentes ao mundo real e mais fáceis de manter.

Um dos principais recursos da orientação a objetos para isso são as Interfaces, sendo esta fundamental para abstração de nossos aplicativos.

Quando falamos em interface logo nos vêm à cabeça o conceito de interface com o usuário, nos remetendo às telas de nossa aplicação. Pois bem, as telas de nossa aplicação não deixam de ser uma interface de comunicação com o usuário final, mas não é deste tipo de interface que estamos falando aqui.

Neste artigo veremos o conceito da estrutura chamada Interface, que visa abstrair comportamentos comuns a diversos objetos de forma que nossa aplicação possa fazer referência à estes comportamentos e não aos objetos concretos em si.

Classe x Interface

A primeira coisa que precisamos ter em mente é a diferença entre uma classe e uma interface. Ambos representam tipos de dados, porém uma classe representa uma estrutura de um objeto contendo estado e comportamento, ou seja, propriedades e métodos.

Uma classe, ao ser instanciada, dá origem a um objeto em memória contendo todas as características do tipo da mesma. Ou seja, se tivermos uma classe ContaCorrente, que possui atributos como Juros e LimiteChequeEspecial, além da implementação de um método chamado AplicarJurosChequeEspecial, ao instanciarmos um objeto deste tipo, este objeto poderá armazenar estes atributos e executar este método.

Já uma interface não pode ser instanciada, visto que ela não possui implementação, servindo apenas para abstrair o comportamento de um determinado objeto. Sendo assim, não podemos invocar o operador new em uma interface.

Outra diferença chave entre estes dois tipos é com relação à herança/implementação. Quando temos uma classe concreta descende de outra classe, dizemos que ela herda de determinada classe pai, enquanto que quando ela descende de uma interface, dizemos que ela implementa esta interface. Em .NET uma classe não pode sofrer herança múltipla, ou seja, não podemos ter uma classe filha herdando de mais de uma classe base. Por outro lado, uma classe pode implementar quantas interfaces forem necessárias.

...
Quer ler esse conteúdo completo? Tenha acesso completo