A programação orientada a objetos (POO) foi precedida por outro paradigma denominado programação estruturada. Neste, os programas são desenvolvidos utilizando-se três estruturas básicas:
- sequência: fluxo contínuo de instruções;
- decisão: fluxo que é executado se atendida uma condição;
- iteração: fluxo que é executado enquanto é atendida uma condição.
A modularidade de programas escritos com programação estruturada é obtida com o uso de Tipos Abstratos de Dados, que utilizam funções e acessam dados compartilhados.
As restrições desse paradigma estão exatamente no acesso compartilhado a dados, que limita sua capacidade de expansão e resolução de problemas muito complexos, devido à concorrência existente no acesso aos dados.
Essa limitação é solucionada no paradigma de orientação a objetos, em que a comunicação se dá por mensagens e não por acesso a dados compartilhados.
Outras características relevantes do paradigma de POO é a facilidade de manutenção do programa, pois é possível realizar alterações em apenas um módulo do programa, sem a necessidade de intervenção em todo o código.
Além disso, outros benefícios incluem:
Além disso, outros benefícios incluem:
- maior reaproveitamento de código;
- maior confiabilidade;
- melhor gerenciamento;
- maior robustez.
A modelagem de um problema nesse paradigma considera que tudo é um objeto, que possui um tipo, uma área própria de memória e a capacidade de se comunicar com outros objetos, via mensagem. Objetos encapsulam dados e métodos, provendo um nível de abstração para seus usuários (outros objetos).
Um objeto é uma instância de uma classe, possui uma identidade (referência única que o difere dos demais), um estado (valores que seus atributos assumem) e um comportamento (suas regras para relacionar-se com outros objetos e para alterar seu estado).
Enquanto a classe representa um módulo do programa, existente em tempo de compilação, um objeto representa uma ocorrência de uma classe, existente em tempo de execução.
A POO possibilita o desenvolvimento de programas modulares. Estes se caracterizam por quatro propriedades principais:
- decomposição: capacidade de segmentar o programa em módulos que podem ser modificados individualmente, de forma independente. A decomposição fica prejudicada quando há uma forte dependência entre módulos;
- composição: capacidade de se combinar (acoplar) de forma livre dois módulos distintos;
- significado fechado: capacidade de se compreender o programa, mesmo sem acesso a todas as suas partes;
- continuidade: capacidade de se alterar parte da especificação de um programa, modificando apenas alguns módulos.
Nenhum comentário:
Postar um comentário