Programação Estruturada e Programação Orientada a Objetos by Rafael Santos
Normalmente, os substantivos encontrados na definição do problema se tornam classes diretamente no programa.E da mesma forma, os verbos se tornam métodos. Uma comparação muito clara entre a programação estruturada e a programação orientada a objetos no que diz respeito aos dados, pois no paradigma estruturado, têm-se procedimentos (ou funções) que são aplicados globalmente em nossa aplicação. No caso da orientação a objetos, têm-se métodos que são aplicados aos dados de cada objeto. Essencialmente, os procedimentos e métodos são iguais, sendo diferenciados apenas pelo seu escopo. Então, a POO é um modelo de programação baseado na aproximação do mundo real com o mundo virtual por meio da criação e interação entre objetos, atributos, códigos, métodos e vários outros fatores. A programação estruturada é um paradigma de programação que segue uma lógica e sequência de pensamentos de uma máquina para resolver problemas computacionais.
Procuramos a classe onde o método esta definido, e assim alterando somente aqueles métodos. Um objeto possui atributos, que são as características que o definem, e métodos, que são os comportamentos ou ações que ele pode realizar. Por exemplo, podemos considerar um objeto “Fusca 1964” com atributos como “ano de fabricação” e “formato arredondado”, e métodos como “locomover-se” e “transportar pessoas e cargas”. Antes de decidir qual linguagem ou paradigma usar para resolver um problema, é necessário ter conhecimento da forma como irá resolver o problema, ou seja, criar o algoritmo, que
é independente de linguagem de programação. A partir daí, a linguagem poderá ser escolhida de acordo com a
afinidade ou gosto do programador.
Encapsulamento
O princípio do
encapsulamento é a forma pela qual o programa é divido a ponto de se tornar o mais isolado possível, ou seja, cada método pode ser executado isoladamente e
retornar um resultado satisfatório ou não para cada situação. Sendo assim, o
objeto não necessita conhecer qual forma cada método foi implementado. Agora vamos criar um
objeto para que o mesmo possa ser utilizado, como mostra a Listagem 2. Vamos começar exemplificando uma classe carro utilizando a
linguagem C#, como mostra a Listagem 1. É considerado desnecessário e contra-produtivo o uso de goto, uma estrutura de controle que permite pular instruções incondicionalmente, o que pode gerar código espagueti, muito mais difícil de acompanhar e de manter, e é fonte de numerosos erros de programação.
C# é um exemplo de linguagem imperativa que está cada dia mais funcional, mas nunca deixará de ser predominantemente imperativa, e manterá sua orientação a objeto (mas que tem papel cada vez menos importante, desde o 2.0 isso vem caindo). Complementando de acordo com os comentários abaixo, os conceitos são ortogonais, e se não ficou https://badevalor.com.br/desenvolvimento-web-criatividade-tecnica-e-outros-desafios/ claro, em linguagens do “mundo real” ou elas são funcionais ou são imperativas com características orientadas a objeto. Na prática, a maioria das linguagens orientadas por objeto seguem o paradigma imperativo, e da mesma forma muitas linguagens funcionais (como Lisp) incluem características não funcionais – como variáveis de estado.
Exemplos de Uso em Python
Além dos getters e setters clássicos, a classe Produto contém outros
métodos especializados para manipular o atributo estoque, que são os métodos entradaEstoque() e saidaEstoque() (linhas 41 a
47). Estes possibilitam adicionar ou remover uma certa quantidade de produtos ao estoque, oferecendo uma
forma mais intuitiva para manipular a variável relacionada (estoque). Dando continuidade ao exemplo orientado a objetos, na Listagem 9 é declarada a classe Vendedor, que segue o mesmo padrão, concentrando os atributos e métodos relativos ao
conceito de vendedor. Uma constatação que pode ser feita sobre o exemplo apresentado é que para que determinado cliente seja acessado, é
necessário percorrer a lista de clientes até que se encontre o cliente com o código informado. Felizmente existem
outras formas de efetuar essa busca, como usando SQL sobre um banco de dados.
- Como visto na Listagem 18, a classe Pessoa contém os atributos e métodos que são comuns às classes Cliente e
Vendedor. - Isso acontece porque se trata de um padrão que tem evoluído muito, principalmente em questões voltadas para segurança e reaproveitamento de código, o que é muito importante no desenvolvimento de qualquer aplicação moderna.
- Atualmente, grande parte das linguagens modernas utilizam os conceitos da programação orientada a objetos, e o POO trouxe novas práticas e conceitos que revolucionaram a escrita dos códigos modernos.
- É considerado desnecessário e contra-produtivo o uso de goto, uma estrutura de controle que permite pular instruções incondicionalmente, o que pode gerar código espagueti, muito mais difícil de acompanhar e de manter, e é fonte de numerosos erros de programação.
- Todavia, o seu encapsulamento é um pouco diferente devido à implementação dos métodos getter e setter, além de possuir herança simples e a utilização de interfaces.
Em relação a abstração, o C++ implementa classes, assim como qualquer linguagem orientada a objetos, além de possuir o sentido de privado e público, que é utilizado para encapsulamento. Esse encapsulamento é curso de desenvolvimento web realizado através de métodos getter e setter, muito similar ao visto em Java e C#. Ao lidar com um sistema ou software de uma empresa, é importante pensar quais os objetivos e o que ele planeja resolver.
Commenti recenti