Mitos e Verdades sobre a Orientação a Objetos em .NET

Neste artigo iremos desvendar os mistérios da Programação orientada a objetos com ênfase em .NET, mostrando os seus princípios e resolvendo algumas questões referentes a dúvidas cotidianas sobre o assunto.

Fique por dentro
O desenvolvimento orientado a objetos é o principal paradigma de programação atualmente. O seu tipo de design permite diversas interpretações, o que leva a vários mitos criados em torno da POO. Esse artigo visa trazer alguns dizeres comuns no meio de desenvolvimento e analisá-los de forma a entendermos se são, de fato, verdades, ou apenas mitos criados ao longo do tempo.

A ideia é que o leitor, ao final do artigo, tenha um entendimento desses elementos e também como eles irão se aplicar ao C#/.NET.

A programação orientada a objetos está presente no dia-a-dia de grande parte dos desenvolvedores. Com a grande quantidade de programadores que desenvolviam em linguagens procedurais como C e Pascal, a alteração para a POO criou uma série de mitos que muitos acreditam até hoje como verdades.

Como veremos ao longo desse artigo, alguns deles são, de fato, verdades, enquanto outros são mitos que acabam sendo repetidos erroneamente.

O objetivo final é entendermos porque esses dizeres são verdades ou mitos através de exemplos utilizando a linguagem de programação C# .NET.

Ao longo desse artigo, iremos trazer uma introdução breve à programação orientada a objetos e o que ela significa no mundo de desenvolvimento. Juntamente com essa introdução, traremos alguns exemplos de linguagens orientadas a objetos comuns no mercado. Note que a implementação dos conceitos da POO irá variar de acordo com a linguagem de programação.

A seguir, iremos trazer alguns dizeres comuns a respeito da POO e analisá-los de forma detalhada através de exemplo com C#.

Programação Orientada a Objetos

Em primeiro lugar, precisamos entender que a programação orientada a objetos não é exclusividade de nenhuma linguagem de programação: trata-se de um design de software, um modelo a ser seguido. Nesse modelo, o objeto é a unidade essencial, responsável por dados e métodos para modificação do mesmo.

A grande vantagem da POO com relação a outras, como a programação procedural (ou estruturada - BOX 1), é a divisão extremamente clara entre os elementos do software. Além disso, o paradigma da orientação a objetos facilita a modelagem do software, auxiliando na criação de uma documentação muito mais completa e explicativa para a aplicação.

Essa clara divisão entre os elementos facilita na criação de aplicações modernas. A POO ainda facilita a introdução de alguns modelos de programação, como o MVC (Model-View-Controller) e o MVP (Model-View-Presenter).

BOX 1. Programação procedural

A programação procedural (ou estruturada) obedece a um paradigma de programação que difere da POO em alguns pontos. Nela, os procedimentos estão ligados a dados globais, diferentemente do que vemos na POO, onde os métodos (equivalentes aos procedimentos) estão ligados aos dados do objeto.

Esse tipo de diferenciação é importante em termos da organização do software, o que traz algumas facilidades e alguns problemas.

Atualmente, linguagens estruturadas como C e Pascal são utilizadas principalmente em microcontroladores e outros elementos de programação embarcada.

O paradigma da orientação a objetos traz o conceito da abstração de objetos do mundo real. Entretanto, como veremos ao longo de nosso artigo, isso não é uma verdade absoluta. Isso é devido ao fato de que a programação orientada a objetos trouxe uma implementação um pouco diferente, baseada em classes que podem ou não ser representações da realidade.

Como um exemplo, podemos ter uma classe Carro ou Pessoa, mas também podemos ter classes que não representam um objeto real, como DadosCarro ou DadosPessoa. Essas classes, então, irão definir os objetos presentes no sistema.

Dentre os desenvolvedores, há a consciência de que uma linguagem orientada a objetos deve obedecer obrigatoriamente a quatro conceitos, considerados os pilares da POO:

Linguagens de programação orientada a objetos modernas, como C# e Java, utilizam uma artimanha muito interessante para criar aplicações capazes de executar em diferentes arquiteturas.

No caso do Java, a presença da JVM (Java Virtual Machine) garante que o software pode ser executado em diferentes máquinas. O compilador Java cria a aplicação em bytecodes capazes de serem executados por essa JVM, criando uma aplicação capaz de executar em qualquer dispositivo imaginável, em teoria.

O C# .NET utiliza uma estrutura similar, compilando a aplicação para uma linguagem intermediária de tempo de execução, que é executada pelo .NET Framework. Existem também outras abordagens, como a utilizada pelo Python.

Essa linguagem é considerada uma linguagem de script, o que significa que ela não é compilada, e sim interpretada em tempo de execução. Isso faz com que a mesma tenha uma melhor performance." [...] continue lendo...

Artigos relacionados