Programação Orientada a Objetos

Programação Orientada a Objetos

Programação Orientada a Objetos surgiu na década de 1970 por Alan Kay.

Seu objetivo era simplificar a programação e aproximar os conceitos abstratos do software com as semelhanças do ser humano, pois Alan Kay era matemático e biólogo.

Dessa forma possibilitou reduzir a complexidade dos códigos, tornando-os compatíveis com diferentes computadores, o que na época não era uma tarefa trivial ou simples.

Definição de Programação Orienta a Objetos

O paradigma da Programação Orientada a Objetos é um modelo de análise, projeto e programação baseado na aproximação entre o meio real e o meio virtual, através da interação entre atributos, métodos e criação de objetos.

Programação Orientada a Objetos e Programação Procedural

Na programação estruturada, a abordagem utilizada para o desenvolvimento é procedural, ou seja, pensamos em uma aplicação como uma rotina ou sequência lógica, com início e fim.

A programação procedural é composta por três tipos de estruturas básicas: sequências (os comandos a serem executados), condições (blocos de decisão) e repetições (sequências repetidas até chegar a determinada condição).

Esta abordagem tornar-se problemática à medida que os sistemas ficam complexos.

O reuso de rotinas é difícil na programação estruturada, obrigando duplicar códigos que desempenham essencialmente a mesma função.

A legibilidade e organização do código é prejudicada, pois os programas ficam longos e ilegíveis.

Na orientação a objetos, por outro lado, uma variável será vista como um atributo de um objeto, algo que ele tem. Um funcionário tem um nome. As funções serão as responsabilidades do objeto.

Conceitos de Programação Orientada a Objetos

Programação Orientada a Objetos (conhecida pela sigla POO) é um paradigma de programação.

Em outras palavras, uma forma de estruturar um código que segue algumas regras, que vão determinar como os problemas serão resolvidos.

Portanto, a principal característica é que cada elemento do meio real é representado por um objeto no meio virtual.

Dessa forma, é mais simples unificar dados e reutilizar os códigos quando necessário.

Por fim, no paradigma da programação estruturada as funções são aplicados globalmente na aplicação.

No caso da orientada a objetos, temos atributos e métodos, aplicados aos dados de cada objeto. Embora de procedimentos iguais, a diferença se direciona aos seus escopos.

Estrutura da Programação Orientada a Objetos

Segue abaixo a estrutura que compõe a Programação Orienta a Objetos:

Classe

Conjunto de especificações (modelo) em que todos têm uma ou mais características.

A classe é a base (modelo) que “classifica” tudo o que será utilizado.

Atributo

Conjunto de características específicas de uma classe ou objeto.

Método

É por meio de um método que se modificam os atributos de um objeto.

Objeto

Objetos são elementos instanciados a partir da classe e possuem atributos e os métodos.

Segue abaixo um exemplo prático em PHP de uma classe, atributos, métodos e objeto:

// Classe Carro 
public class Carro {
   // Atributos 
   String modelo;
   String marca; 
   
   public static void main(String[] args) {
   
	// Instanciar o objeto
	   Carro carro = new Carro();

	   // Chamar o método para ligar o carro
	   carro.ligar();
	   
   }
   // Método ligar() 
   public void ligar() {
      System.out.println("O carro foi ligado...");
   }
   
}

Benefícios da Programação Orientada a Objetos

A programação orientada a objetos propõe uma representação mais fácil de ser compreendida, pois a relação de cada elemento em termos de um objeto, ou classe, pode ser comparado ao mundo real.

Outro benefício da POO é a reutilização de código. Com a complexidade dos sistemas cada vez mais ampla, o tempo de desenvolvimento iria aumentar absurdamente, caso não fosse possível a reutilização.

Essa funcionalidade é possível, pois a POO traz representações muito claras de cada um dos elementos que, normalmente, não são interdependentes. E dessa independência entre as partes do software é que esse código poderá ser reutilizado em outros sistemas no futuro.

Por fim, outra grande vantagem fica por conta da leitura e manutenção de código. Como sua representação do sistema se aproxima da vivência cotidiana, o entendimento do sistema como um todo é simplificado. Isso dá liberdade à equipe de desenvolvimento, não ficando dependente de uma só pessoa, como em alguns casos de linguagem estruturada.

Com ela, há também a possibilidade da criação de bibliotecas, com representações de classes, o que torna mais clara a reutilização de códigos.

Afinal, como uma das responsabilidades do desenvolvedor é entender quais são as vantagens e desvantagens de cada um dos paradigmas de programação e, assim, escolher o que há de melhor para a aplicação do cliente, a escolha da linguagem pesa muito na experiência final do usuário.

Saiba o que é Design Patterns e o Pradrão MVC