Article image
Priscila Souza
Priscila Souza15/03/2023 23:26
Compartilhe

Os 4 pilares da Programação Orientada a Objetos

    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 impacto 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
    

    Fonte: https://www.sergiotoledo.com.br/artigos/os-4-pilares-da-programacao-orientada-a-objetos

    Compartilhe
    Comentários (2)
    ANDREZA OLIVEIRA
    ANDREZA OLIVEIRA - 16/03/2023 14:47

    Excelente explicação!

    PL

    Pablo Lima - 16/03/2023 08:16

    Muito bem explicado, adorei os exemplos.