DEV Community

Felipe Bs
Felipe Bs

Posted on

Programação Orientada a Objetos e Programação Funcional

Todo estudante de lógica de programação e estruturas de dados inevitavelmente se depara com a dúvida: o que são paradigmas?

Paradigmas são modelos ou estilos de programação que definem como uma linguagem estrutura e executa código. Não existe um paradigma "melhor" que o outro; a escolha depende do problema que você está tentando resolver e da linguagem que está utilizando.

Programação Orientada a Objetos

Java, por exemplo, é uma linguagem que segue o paradigma de Programação Orientada a Objetos. Em POO, a ênfase está em como as coisas são feitas, com foco em objetos, classes, herança, polimorfismo, abstração e encapsulamento no qual chamamos de imperativo.

Exemplo disso em Java é assim:

public class Animal {
    private String nome;

    public Animal(String nome) {
       this.nome = nome;
    }

    public String getNome() {
        return this.nome;
    }
}
public static void main(String[] args) {
     Animal animal = new Animal("Leão");
     System.out.println("O nome do animal é: " + animal.getNome());
}
Enter fullscreen mode Exit fullscreen mode

Neste exemplo, criamos um objeto Animal com um atributo nome. O método main instância um Animal e imprime seu nome.

Programação Funcional

JavaScript é frequentemente usado no paradigma de Programação Funcional, onde a ênfase está no que deve ser feito,utilizando funções como cidadãos de primeira classe e evitando mutações de estado no que chamamos de Funcional.

Exemplo disso em Javascript é assim:

function procurarAnimal(animais) {
    return animais.filter(x => x === "Leão");
}

let animais = ["Leão", "Pato", "Gato"];

console.log(procurarAnimal(animais));
Enter fullscreen mode Exit fullscreen mode

Diferença entre Programação Orientada a Objetos e Funcional

A principal diferença entre POO e PF não é apenas a tipagem, mas também como cada paradigma estrutura a lógica do programa. POO se concentra em objetos e suas interações, enquanto PF enfatiza funções e transformações de dados.
POO utiliza conceitos como herança, polimorfismo, abstração e encapsulamento para organizar o código. Já o PF valoriza funções puras, imutabilidade e composição de funções.

Dito tudo isso, eu quero apenas que você iniciante entenda que independente de tudo, a linguagem ela é uma ferramenta feita para ti servir e entender como ela funciona vai facilitar muito sua evolução como programador.

Para mais informações sobre paradigmas de programação, recomendo o canal do Código Fonte TV, que oferece uma visão clara e direta sobre o assunto ou procurar em sites como StackOverFlow que as pessoas abordam e trazem discussões sobre esses tópicos que citei e suas particularidades.

Top comments (0)