Um dos maiores desafios do paradigma orientado a objetos é sem dúvida a criação de códigos coesos. Na programação, a coesão além de ser um dos fundamentos da orientação a objetos, também possui uma definição própria e é um conceito importantíssimo para a criação de algoritmos.
Leia também
Orientação a Objetos: classe, métodos, atributos e objetos
Orientação a objetos: como surgiu?
O que é algoritmo? Aprenda de uma vez por todas
Como criar tabelas: dados atômicos e chave primária
Entenda a Diferença entre chave primária e chave estrangeira
Você sabe qual é a diferença entre GIT e GITHUB?
Quer aprender a programar? Confira aqui 25 cursos gratuitos e com certificado!
A arte de delegar funções desnecessárias em um bloco de código é capaz de amenizar a sobrecarga de dados. E esta é uma das principais características desse paradigma.
Portanto, nesse post você vai conhecer os principais conceitos que são fundamentais para o entendimento orientação a objetos. Depois da leitura você vai ter uma noção do que é a coesão, herança, associação, abstração e encapsulamento.
Acompanhe:
Reúso de Código: Herança e Associação
Segundo o livro Orientação a Objetos – Cada do Código (2016), a herança e a associação são mecanismos que criam um relacionamento, possibilitando a reutilização de código de forma mais prática e menos propícia a erros. Portanto, tem-se um código que traduz a realidade do mundo real sem a repetição poluída, que dificulta a manutenção.
Na herança, há a criação de classes. Estas podem ser derivadas de outras, herdando assim todos os seus dados e comportamentos. Caso seja preciso acrescentar novas informações ou modificar comportamentos existentes, com a herança isso é possível.
Na associação, por outro lado, reaproveita-se o código de modo diferente. Uma classe pede a outra para poder fazer aquilo que ela não consegue fazer sozinha, como é afirmado no livro Orientação a Objetos – Casa do Código (2016).
Dessa forma, em vez de se repetir um bloco de códigos inserido em outra página, a associação permite que uma classe forneça um porção do seu código a outra, como se fosse uma troca. Isso evita a repetição desnecessária do código, pois este não é escrito duas vezes, e sim reaproveitado.
Coesão
Uma das principais características da Orientação a Objetos é a coesão. Esse princípio diz, como afirma Thiago Leite e Carvalho (2016), que cada unidade de código deve ser responsável por apenas as informações e códigos que elas devem executar.
Diferentemente do paradigma estruturado em que os códigos são feitos em um bloco só, no orientado a objetos, os códigos são separados e organizados.
Uma outra diferença entre o estruturado e o orientado a objetos, é que no primeiro, pode ser mais fácil o desenvolvimento do código, enquanto que no segundo, o código se torna mais complexo, justamente por ser separado e coeso.
Em resumo, a coesão garante que uma unidade de código não poderá assumir responsabilidades que não lhes são necessárias, evitando assim a sobrecarga de dados.
Vamos tomar como exemplo uma aplicação web para gerenciamento de uma loja qualquer. Nela, temos de desenvolver inúmeras funções e ferramentas que vão facilitar o cotidiano da empresa que a comprar.
Então, entidades como produtos, clientes, funcionários, fornecedores, vendas e estoque têm de ter suas informações restringidas a elas mesmas.
Seus códigos, de acordo com a coesão, devem estar presentes apenas em sua unidade. Assim você não vai ver o código do funcionário e seus dados junto com o código do cliente, por exemplo.
Cada um deles precisa ter o seu espaço, onde estarão presentes as suas informações (atributos) e funções (métodos e comportamento).
Abstração
No início, o conceito de abstração é um pouco difícil de ser entendido. A programação orientada a objetos é voltada para a resolução de problemas reais, ou seja, que acontecem em nosso cotidiano.
Por isso, abstrair essas informações e transformá-las em códigos é uma das características mais importantes da orientação a objetos.
De acordo com o Dicionário Online Dicio, abstração significa:
- Ação de abstrair, de analisar isoladamente um aspecto, contido num todo, sem ter em consideração sua relação com a realidade.
- [Filosofia] Operação mental através da qual elementos e aspectos são isolados, somente no pensamento, sendo que (na totalidade) não existem isoladamente; resultado dessa operação.
- Fazer abstração de uma coisa. Não levar algo em consideração.
Portanto, traduzindo esses conceitos para a programação, pode-se dizer que a abstração é a capacidade de não se preocupar com todas as características de um elemento, sendo possível trabalhar apenas com o que for essencial, segundo Thiago Leite e Carvalho (2016).
Assim, quando o objetivo for desenvolver um código para a criação de um motor, pode-se criar um molde o mais genérico possível e posteriormente, acrescentar novas versões de diferentes modelos.
Encapsulamento
Na programação orientada a objetos, o encapsulamento serve para ocultar como determinada parte do projeto é feita, de modo a aparecer somente aquilo que o programador desejar.
Em outras palavras, o encapsulamento mostra apenas o resultado ocultando as ações que chegaram até ele.
Uma outra característica do encapsulamento é a proteção de informações. Com ele todas as informações que não podem ser acessadas por terceiros são mantidas seguras e impossíveis de modificar.
A programação orientada a objetos possui inúmeras particularidades, mas que fazem toda a diferença na vida do programador. No próximo post, vamos falar sobre os conceitos de classe, atributos e objetos.
Caso não queira perder, assine a nossa newsletter.
Fonte: CARVALHO, L. Thiago. Orientação a Objetos: Aprenda seus Conceitos de Forma Efetiva. Casa do Código (2016).