Sobes.tech
Junior — Middle

Quais são as principais diferenças entre os estilos de programação orientada a objetos e funcional?

sobes.tech IA

Resposta da IA

O estilo orientado a objetos (OO) e o estilo de programação funcional têm diferenças fundamentais:

  • OO baseia-se na modelagem de entidades na forma de objetos com estado (campos) e comportamento (métodos). Conceitos principais: encapsulamento, herança, polimorfismo.
  • Programação funcional concentra-se em cálculos através de funções que não têm efeitos colaterais e não alteram o estado. Conceitos principais: funções puras, imutabilidade de dados, funções de ordem superior.

Em Java, por exemplo, a OO é um modelo clássico com classes e objetos, e o estilo funcional é implementado através de expressões lambda, streams e funções do pacote java.util.function.

Exemplo de abordagem funcional em Java:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4);
List<Integer> doubled = numbers.stream()
    .map(n -> n * 2)
    .collect(Collectors.toList());