Imprimir Post

Programação Orientada a Objetos com C# (Parte 6.2) – Interface

Resumo:

O objetivo não se aplica a este post.

Uma vez que o conteúdo total desta série foi dividido em partes, deve-se considerar absoluto o resumo da primeira postagem até o momento presente.

Interface - Relembre - Link Primeiro Post

Este tema da série Programação Orientada a Objetos com C# irá demandar mais publicações. Sendo assim, a numeração sequencial desta parte da série passou de 6.1 para 6.2 (vide título) e assim seguirá (6.3, 6.4…) mediante a necessidade de conclusão.

Palavras-chaves:

Encapsulamento, Herança, Polimorfismo, Propriedades, Classe, Objeto.

Texto:

Mãos a Obra

Com a recapitulação do cenário onde ocorre a alteração da classe Program e a execução das classes Unitario, EspecialDesempregado, UnicoComum e UnicoEstudante (filhas da Classe Bilhete), foram apresentadas mensagens em uma janela de console diferenciando os valores dos objetos criados à partir das classes citadas, porém mostrando características e comportamentos iguais em sua estrutura de criação (vide post anterior), o próximo passo na Programação Orientada a Objetos com C# será entender de maneira geral quando e como utilizar Interface.

Interface - Relembre - Link Post Anterior

Porque utilizar Interface

Quando Classes em comum, necessitam implementar membros obrigatórios para garantir a segurança e integridade de suas regras, deve-se utilizar uma técnica chamada Interface.

Como aplicar Interface

A utilização de Interface consiste, portanto, em criar uma estrutura exclusiva para declarar membros, sendo que estes membros, deverão ser implementados obrigatoriamente por classes que irão servir-se desta Interface.
Interface - Nota - Membros

Compreendendo o cenário atual

Retomando o cenário do sistema metropolitano (estabelecido ao longo da série), é possível verificar que as classes UnitarioUnicoComum e UnicoEstudante são na realidade os Bilhetes de Metrô (Unitário como Bilhete Exclusivo, Único Comum e Único Estudante da categoria Bilhetes Únicos) e portanto Herdam da Classe Pai ou Classe Base Bilhete.

Ainda tratando-se das classes UnitarioUnicoComum e UnicoEstudante, nota-se de maneira em comum e nível de importância elevados, os comportamentos como CobraTarifa() na estrutura das classes Unitario, UnicoComum e UnicoEstudante, já os comportamentos Saldo() e Debita() estão presentes nas estruturas das classes UnicoComum e UnicoEstudante:

Interface - Classe Unitario x Classe UnicoComum x Classe UnicoEstudante x Classe Bilhete

Classe Unitario x Classe UnicoComum x Classe UnicoEstudante x Classe Bilhete

Na classe Unitario o método CobraTarifa() não é explícito uma vez que esta classe não o sobrescreve, somente o reaproveita da maneira que está implementado na classe Herdada Bilhete.

Já nas classes UnicoComum e UnicoEstudante o método CobraTarifa() é sobrescrito de maneira a atender as particularidades de ambas, tendo também em sua estrutura e trabalhando independentemente, com os métodos Saldo() e Debita().

Eis acima todos os itens identificados como determinantes para aplicação de Interface no cenário atual.

Aplicando Interface no cenário atual

A utilização de Interface será empregada em 3 passos:

  • Criação de uma Interface, denominada IBilhete;
  • Alteração da interface IBilhete, assumindo os membros de maior importância para implementação das classes Unitario, UnicoComum e UnicoEstudante;
  • Alteração das classes Unitario, UnicoComum e UnicoEstudante, estabelecendo a implementação de membros obrigatoriamente.

Ao final, a classe Program também será alterada de maneira a executar o projeto aproveitando todas as mudanças na reconstrução das outras classes, que utilizarão por fim a Orientação a Objetos de maneira adequada com o conceito Interface.

Considerações Finais:

Esta publicação visa explanar de maneira geral o nascimento de Interface, quando o cenário em questão proporciona a utilização desta técnica. Deixando em evidência a sequência de passos que virão posteriormente, garantindo empregar o conceito dentro do estabelecido.

É importante ressaltar que, a medida que os posts forem evoluindo, com apresentações teóricas somadas as práticas, a tendência é que o leitor vá sanando suas dúvidas e dificuldades de entendimento.

Na próxima publicação, ainda sexta parte da série: Programação Orientada a Objetos com C# será apresentado o terceiro post sobre Interface, o leitor irá conferir a continuidade do tema entre outros aspectos relevantes a este assunto.

Referências Bibliográficas:

As referências bibliográficas serão apresentadas no último post desta série.

Sobre o autor

Thiago Richard Vanicore

Thiago Richard Vanicore formou-se em análise e desenvolvimento de sistemas, possui certificação ITIL Foundation V2 e entre seus conhecimentos estão: ASP .Net (WebForms/MVC5/Web API) C#, HTML5, Html/XHtml, CSS3, JQuery, JQuey Mobile, JavaScript, Xml, Ajax, Json, Microsoft SqlServer, MySql, Firebird, Azure, Visual Studio Online, Scrum, UML, CRM, Quality Assurance, CTI (Computer Telephony Integration) MPSBR (Melhoria de Processos do Software Brasileiro).

Link permanente para este artigo: http://linksinergia.com.br/2016/08/10/3578/