terça-feira, 3 de maio de 2016

Paradigmas da Programação Orientada a Objeto X Programação Estrutural



Paradigmas da Programação Orientada a Objeto x Programação Estrutural



   O desenvolvimento de softwares nos dias atuais é absurdamente amplo, qualquer pessoa com sã consciência e vontade, pode de sua própria casa, aprender a programar e se tornar um desenvolvedor. Existem os mais diversos tipos de desenvolvedores. Desde os que tem a programação como hobby até os  que vivem profissionalmente deste ramo.
   O fato é que, seja qual tipo de programador você seja, em algum momento da vida computacional irá se deparar com os paradigmas da programação orientada a objeto, convencionalmente chamada (OO)  e a programação estrutural. Então qual são as diferenças ? Em que se fundamenta cada uma ?
No recapitulando de hoje trataremos sobre isso.

Programão Estrutural

   A programação estrutural está baseada em um paradigma sequencial, em que cada linha de código é executada uma após a outra, sem muitos desvios de fluxo. Diferente do que veremos posteriormente nos paradigmas da programação orientada a objeto.  A programação estrutural está baseada em três pilares.
  • Sequencia
  • Seleção
  • Iteração
   A sequência diz respeito a implementação dos passos necessários para descrever determinada funcionalidade ou programa desejado.
   A seleção se relaciona com o fluxo a ser percorrido, dependendo da escolha, onde pode ser um fluxo condicional ou multifluxos !
   E a Iteração diz respeito a repetição de passos ou execução de instruções repetidas.

Programação Orientada a Objeto

   Esse tipo de programação tem crescido bastante , principalmente por questões voltadas a segurança e reaproveitamento de código, o que é muito importante no desenvolvimento de qualquer aplicação moderna. É um padrão de desenvolvimento que é seguido por muitas linguagens como C# e Java. Além disso a OO tenta aproximar a representação do sistema mais perto do que veríamos no mundo real. Assim como a programação estrutural, a OO tem se sustentado em quatro pilares. 

  • Abstração
  • Encapsulamento
  • Herança
  • Polimorfismo


   A abstração: Chegar o mais próximo da representação de um objeto real. Para tal temos três
características.





  1. Identidade: Geralmente associado ao conceito de pacotes e nomes de classes;
  2. Propriedades: Características que o objeto terá. Por exemplo, imaginando um cachorro as propriedades de um cachorro seriam tamanho, raça, idade e etc.
  3. Métodos: Associados as "ações" que o objeto pode descrever. Ainda levando em consideração o cachorro, ele pode "latir()", "correr()" e etc.










   O encapsulamento se trata de um dos elementos que adicionam segurança a aplicação em uma programação OO, pelo fato de esconder as propriedades, criando uma espécie de caixa preta. A maior parte das linguagens OO implementam o encapsulamento baseado em propriedades privadas, ligadas a métodos especiais chamados getters e setters. Essa atitude evita o acesso direto a propriedade do objeto adicionando outra camada de segurança a aplicação.






  A herança está relacionado ao reuso de código,e é uma das grandes vantagens da programação OO. O objeto abaixo irá herdar características de todos os objetos acima dele, que são seus ancestrais 




   Sabe-se que graças a herança os objetos filhos herdam caracteristicas e comportamentos de seus ancestrais, entretanto, em alguns casos é necessário que as ações para um mesmo, seja diferente. O polimorfismo consiste na alteração do funcionamento interno de um método herdado de um objeto pai.






Por fim, quais são as vantagens e as desvantagens de cada paradigma ?!


VANTAGENS PE:

  • Segue um paradigma sequencial;
  • Leitura de linha por linha, sem muitos caminhos paralelos;
  • Fácil compreensão;

VANTAGENS POO:

  • Procura aproximar o sistema que está sendo criado ao que é observado no mundo real;
  • Reutilização de código;
  • Facilidade para mantenção;


Escrito por:
Igor Matheus - Integrante do PET Computação