Skip to main content

O que é programação orientada a objetos?

Este post faz parte de uma sequência de conteúdospara desmistificar a orientação a objetos, a sequência será:

#1 O que é a orientação a objetos, uma visão geral sobre orientação a objetos e como ela funciona.

#2 Os 4 Pilares da orientação a objetos.

#3 Os principais benefícios que a orientação a objetos traz para você e para seu código.

#4 como continuar evoluindo em orientação a objetos.

Mas então, o que é programação orientada a objetos?

Primeiramente precisamos entender que programação orientada a objetos é mais do que somente “programação”. Para compreender a orientação a objetos precisamos entender que orientação a objetos é uma forma de pensar em desenvolvimento de software, é isso que estamos habituados a chamar de paradigma de desenvolvimento.

Para exemplificar melhor sobre paradigmas de desenvolvimento de software nada melhor que falar um pouco sobre os principais paradigmas para que possamos ter a capacidade de comparação entre eles.

Programação estruturada.

Tendo como uma das principais características um bloco único de código a programação estruturada é um dos principais paradigmas mais antigos do desenvolvimento de software.

Nesse padrão de programação o software é estruturado de uma maneira sequencial onde cada tarefa deve ser executada ao termino de outra.

Apesar de defasado o paradigma estruturado ainda é muito comum pois é a forma como a maioria dos estudantes de programação aprender a programar.

Como principal problema de um código estrutural, o desenvolvedor normalmente acaba ficando perdido na desorganização de milhares de linhas de código repetidas, complicando a manutenção do sistema à medida que a base de código aumenta.

Programação Funcional.

Fortemente baseada em definições matemáticas na programação funcional em resumo (sim é um tanto mais complexo que isso :P) devemos pensar em nosso código como uma sequencia de funções que conjuntamente irão completar um algoritmo que irá resolver o problema.

A principal vantagem da programação funcional é sua previsibilidade, visto que suas regras incentivam a imutabilidade das variáveis, logo, podemos confiar que as funções não devem alterar os valores das variáveis originas.

Finalmente programação orientada a objetos.

Na programação orientada a objetos o mais importante de se entender é:

Na orientação a objetos o software é baseado na composição e interação entre diversas micro unidades que chamamos de objetos.

Ou seja, devemos analisar quais os objetos (e as composições) envolvidos em um problema para que dali pra frente possamos entender como eles devem interagir entre eles gerando os comportamentos esperados.

Quem aqui nunca leu, viu ou ouviu sobre a “Classe Pessoa” ou “Classe Automóvel” certo? A verdade é que a estrutura da classe por si só diz pouco sobre OOP. O principal erro de quem está começando a estudar o paradigma orientado a objetos é focar somente nos mecanismos de composição dos objetos e não na interação entre objetos que compõe um algoritmo.

Benefícios da programação orientada a objetos

Como um dos principais benefícios da programação orientada a objetos temos a possibilidade de modelagem de sistemas complexos de maneira clara e prática.

A orientação a objetos também leva ao reuso de código, dando ao programador uma produtividade elevada pois é ele não precisará escrever muito mais código visto que parte das funções podem ser reutilizadas.

Para mim o principal ganho da orientação a objetos é que ao entender a relação entre os objetos (design do código) o programador ganha clareza da regra de negócio. [SPOILER ALERT] por isso que saber produzir um bom design código é essencial para todo programador, pois um bom design de código facilita o entendimento do software para quem está entrando na equipe além de melhorar muito a manutenibilidade do software, vamos tratar de design de código mais para frente. [/SPOILER ALERT]

No próximo capítulo.

Vamos entender os 4 pilares da programação a objetos e como eles facilitam a interação dos objetos formando algoritmos que automatizam as rotinas necessárias.

Gostou do conteúdo até aqui? Me ajuda a entender como posso te ajudar mais deixa um comentário aqui em baixo e curte a nossa pagina lá no facebook e no Instagram para receber mais conteúdos como esse aqui.