Os 4 pilares da Programação Orientada a Objetos

Para entender a POO (Programação Orientada a Objetos)  precisamos compreender seus 4 pilares fundamentais que são:

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

 

Abstração

Abstração significa "esconder" partes da implementação do objeto expondo apenas uma interface simples para seu uso. Pense por exemplo num forno de micro-ondas, você não precisa entender toda a complexidade de como os componentes internos trabalham para gerar as ondas e produzir calor, você quer apenas apertar um ou dois botões e ter uma refeição quente pra comer. Toda essa complexidade são detalhes de implementação, você não precisa conhecê-los.

Da mesma forma seu objeto deve ter uma interface simples e amigável, deixando suas partes complexas ou detalhes de implementação protegidos do mundo exterior. Assim mudanças feitas internamente no nível da implementação não irão afetar sua interface pública e aqueles que utilizarem o objeto.

Encapsulamento

Encapsulamento se refere à construção do objeto de modo a proteger o acesso direto a seus dados internos. Ao encapsularmos um objeto estamos agrupando propriedades e métodos que estão diretamente relacionados dentro de um mesmo objeto, permitindo que essas propriedades sejam acessadas apenas através de métodos públicos. Desta forma tratamos de questões importantes como segurança e confiabilidade do estado do objeto.

Herança

A Herança é uma forma de eliminar repetição de código onde, como o próprio nome sugere, um objeto pode herdar características (ou seja, propriedades e métodos) de outra classe, sem a necessidade de se reescrever essas mesmas características.

Para um exemplo prático, pense nos objetos clt e estagiario. O objeto clt poderia ter métodos exclusívos como calculo_de_13 e fgts, mas ambos compartilhariam propriedades como salario e data_de_inicio, e métodos como receber_salario ou calcular_ferias e não faria sentido implementar essas mesmas propriedades e métodos em ambas as classes, mas sim inserir essas características em uma classe pai como por exemplo funcionario.

Polimorfismo

Poli significa muitas e Morphos significa forma, então Polimorfismo significa muitas formas. Em POO Polimorfismo é caracterizado quando duas ou mais classes possuem métodos com o mesmo nome, mas podendo ter implementações diferentes. Assim, é possível utilizar qualquer objeto que implemente o mesmo método sem nos preocuparmos com o tipo do objeto. Na prática isso nos possibilita remover do nosso código diversos if statements ou switch cases

No exemplo dado acima, utilizando polimorfismo podemos implementar o método calcular_ferias em cada um dos objetos clt e estagiario, sendo que cada um desses métodos pode ter uma implementação diferente.

 

Resumo

Então temos como vantagens na utilização da Programação Orientada a Objetos:

Com a Abstração nós escondemos os detalhes e o complexidade e expomos apenas o essencial, desta forma nós reduzimos a complexidade e reduzimos o impácto das mudanças feitas no código.
redução da complexidade + redução do impácto das mudanças

Usando Encapsulamento nós agrupamos propriedades e métodos relacionados e desta forma nós reduzimos a complexidade e podemos reutilizar esses objetos em outras partes do nosso projeto aumentando a reusabilidade.
redução da complexidade + aumento da reusabilidade

Com a Herança nós eliminamos repetição de código.
eliminação de repetição de código

Usando Polimorfismo nós podemos remover if/switch statements.
remoção de código desnecessários

Visualizações: 25700



26 de April de 2024

Aprenda Inglês ou Espanhol com Know the Words

App desenvolvido para te ajudar a aprender Inglês ou Espanhol.

08 de November de 2016

Criadores e suas Criaturas

Vamos conhecer um pouco sobre algumas linguagens de programação e seus criadores

21 de September de 2013

Ferramentas para um Programador PHP

Para ser um Programador PHP é necessário ter algumas ferramentas básicas instaladas em seu computador. Aqui vão algumas dicas para se ter um kit completo de programas para auxiliar na criação e gerenciamento dos seus sites.

26 de August de 2013

Programador PHP e Web Designer

O Programador PHP é o responsável pelo desenvolvimento da lógica e mecânica por trás do site já o Web Designer é o responsável pela criação e todo o conteúdo visual do site...

25 de August de 2013

Criação de Site

Existem diversas ferramentas para a Criação de Site que possibilitam mesmo pessoas sem muito conhecimento criar um Website, mas para se ter um Site Profissional, que seja agradável e com bom conteúdo, é necessário a participação de um profissional especializado...

22 de August de 2013

Hospedagem de Sites

Para se ter um site é necessário basicamente o Registro de Domínio e um local para Hospedagem de Sites. Existem diversas empresas de Hospedagem com planos diferentes que variam de preço, espaço em disco, quantidade de e-mails...

19 de August de 2013

Sites de Busca

Atualmente os Sites de Busca são ferramentas indispensáveis para a utilização da internet. Sites como o Google, Yahoo! e Bing, além de utilizados para busca de conteúdo, também são importantes ferramentas de negócios...

19 de August de 2013

Programador PHP

Existem algumas dezenas de linguagens de programação para os mais diversos fins, e em se falando de desenvolvimento web o PHP é uma das linguagens mas utilizadas atualmente...

19 de August de 2013

Loja Virtual

Uma excelente forma para quem deseja vender um produto mas não possui um espaço físico, ou já tem uma loja e quer ampliar suas vendas, é a criação de uma Loja Virtual também conhecida como E-commerce...

19 de August de 2013

Hotsite

Se você quer divulgar um evento ou promoção, lançar um produto ou serviço, a produção de um Hotsite pode ser uma boa estratégia de marketing.

Sérgio Toledo | Full-Stack Web Developer | LinkedIn | GitHub | YouTube

Todos os direitos reservados ©