PARADIGMAS DE PROGRAMAÇÃO
Um paradigma de programação está intimamente relacionado à forma de pensar do programador e como ele busca a solução para os problemas. È o paradigma que permite ou proíbe a utilização de algumas técnicas de programação. Ele é capaz, ainda, de mostrar como o programador analisou e abstraiu o problema a resolver. Existem vários paradigmas de programação: estruturado e orientado a objetos.
Pelo paradigma estruturado (também conhecido como imperativo), qualquer problema pode ser resolvido utilizando três estruturas: seqüencial, condicional e iterativa (repetição). Além disso, procura encontrar uma forma de quebrar um problema complexo em pequenas partes simples que trabalhadas conjuntamente, permitam solucioná-lo.
A idéia é que utilizando corretamente tais estruturas, o recurso da modularização e a parametrização, seja possível criar programas com menor repetição possível de linhas de comandos.
Já o paradigma orientado a objetos compreende o problema como uma coleção de objetos interagindo por meio de trocas de mensagem. Os objetos são estruturas de dados contendo lógica. Dessa maneira, um conjunto de objetos com informações comuns e com o mesmo comportamento dá origem a uma classe.
Exemplificando, um programador que utiliza o paradigma estruturado analisa o problema tentando relacionar as ações que deverão ser executadas e como poderão ser divididas em módulos. Um programador que utilize o paradigma orientado a objetos analisaria o mesmo problema tentando identificar os objetos que compõem esta realidade e como eles interagem.
Como o paradigma está ligado a forma de pensar do programador, o simples fato de se utilizar, por exemplo, uma linguagem com suporte nativo à orientação a objetos não implica que a solução apresentada seja orientada a objetos, ou, então, muitas soluções não estruturadas são feitas utilizando linguagens com suporte a estruturação.
Vamos verificar agora, por meio de um exemplo, a aplicação dos dois paradigmas na resolução de um mesmo problema.
O problema é calcular a área e o perímetro de um retângulo. Para isso, deverá existir uma janela, pela qual serão informadas as medidas dos lados do retângulo e poderão ser vistos os cálculos realizados. Trata-se de um problema simples. Como vamos resilve-lo?
Segundo o paradigma estruturado (ou imperativo), devemos detalhar as ações necessárias para chegas à resposta necessária.
- Obter o valor da altura do retângulo
- Obter o valor da largura do retângulo
- Calcular a área
- Calcular o perímetro
- Mostrar os cálculos realizados
Posteriormente, devemos analisar a melhor forma de modularizar a solução, para que cada módulo realize uma tarefa bem específica, capaz de ser reutilizada o máximo possível.
Cada módulo poderá receber valores e também devolver um valor a quem solicitou. Neste exemplo, nossa solução será composta por três módulos: o principal, pelo qual execução começará, o calculaArea, responsável por calcular e devolver o valor da área do retângulo; e o calculaPerimetro, responsável por calcular e devolver o valor do perímetro do retângulo.
Em Java, usando o paradigma estruturado, a solução ficaria como se segue:
Por sua vez, o paradigma orientado a objetos propõe que a solução de qualquer problema pode ser obtida seguindo estas etapas:
- Procurar objetos existentes no problema
- Determinar as características e responsabilidades de cada objeto
- Estabelecer como ocorrerá a interação entre os objetos
Assim, pelo que foi apresentado e analisado no exemplo, observamos a existência de dois objetos: o retângulo e a janela.
O objeto retângulo tem a obrigação de armazenar e manipular o valor da altura e da largura, além de calcular a área e perímetro.
A janela tem a obrigação de receber os valores iniciais (altura e largura) e enviá-los para o retângulo. Depois disso, deve solicitar os valores da área e do perímetro ao objeto retângulo para mostrá-los.
A comunicação entre os objetos janela e retângulo é conhecida como troca de mensagens.
Em Java, usando o paradigma orientado a objetos, a solução ficaria da forma descrita abaixo:
Em um arquivo salvo como retângulo.java
Como visto acima um arquivo Retangulo.java para a classe retângulo foi mostrado acima, agora mostrarei um arquivo para a classe Janela sendo seu nome Janela.java
Cada linguagem de programação atende pelo menos um paradigma. Alguns autores consideram que qualquer paradigma pode ser implementado em qualquer linguagem (inclusive assembly), pois depende apenas da forma de pensar do programador e da sua habilidade de programar. De forma inversa, também se pode afirmar que o fato de a linguagem dar suporte nativo a determinado paradigma não significa que ele foi utilizado.
Além disso, deve-se observar que o paradigma orientado a objetos não exclui o estruturado. Ao contrário eles trabalham juntos uma vez que toda a lógica embutida nos objetos segue o pensamento estruturado.
Por fim, uma observação importantíssima precisa ser feita neste momento, este estudo visa o objetivo desenvolvimento da lógica em programadores iniciantes, juntamente com a utilização das estruturas de controle, estruturas de dados e dos recursos de modularização, para mais detalhes sobre orientação a objetos favor estudar as páginas sobre C++ e Java, pois aqui vamos prosseguir nossos estudos sobre algoritmos no paradigma estruturado
Nenhum comentário:
Postar um comentário