0

Paradigmas em Java

#Java
Renan Vale
Renan Vale

Criei este artigo com base no módulo 01 do curso de Desenvolvimento Avançado em Java. A cada módulo que finalizar irei criar um artigo como este, Sou iniciante e pretendo passar aqui minhas anotações e o que aprendi, espero que gostem.


Pré requisitos

  • Desenvolvimento básico em java
  • Orientação a objeto
  • Java Generics
  • Collections: List e Set


Paradigma Funcional em Java

Programação funcional é o processo de construir software através de composição de funções, evitando compartilhamento de estados, dados mutáveis e efeitos colaterais. É declarativa ai invéns de imperativa, essa é uma definição de Erich Elliot.


Paradigma Imperativo: é aquele que expressa o código através de comandos ao computador, nele é possível ter controle de estado dos objetos.

Exemplo:

class Imperativo {
 public static void main(String[] args){
  int valor = 10;
  int resultado = valor * 3;
  System.ou.println("o resultado é::" + resultado);
 }
}


Scrip de Ordens

O computador vai escrevendo linha por linha esse código.


Paradigma Funcional

Damos uma regra, uma declaração de como queremos que o programa se comporte.

Exemplo:

class Funcional {
 public static void main(String[] args) {
  UnaryOperador<Integer>calcularValorVezes3 = valor -> valor*3;
  int valor = 10;
  System.ou.println("o resultado é::" + calcularValorVezes3.aplly(10));
 }
}


Conceitos Fundamentais da Programação Funcional


Composição de Funções: é criar uma nova função através da composição de outras. Por exemplo, vamos criar uma função que vai filtrar um array, filtrando somente os números pares e multiplicando por dois.

Exemplo:

class ComposicaoDeFundo {
 public static void main (String[] args) {
  int[] valores = {1, 2, 3, 4};
  Arrays.stream(valores)
    .filter(numero -> numero % 2 == 0)
    .map(numeor -> numero + 2)
    .forEach(numero -> System.out.println(numero));
  }
}


Funções Puras: é o chamado de pura quando invocada mais de uma vez produz exatamente o mesmo resultado:

Exemplo:

class FuncoesPuras {
 public static void main(String[] args) {
  BiPredicate<Integer,Integer>verificarSeMaior = (parametro, ValorComparacao) -> parametro > valorComparacao;
  System.out.println(varificarSeMaior.test(13,12));
 }
}



Imutabilidade: significa que uma vez que uma variável que recebeu um valor, vai possuir esse valor para sempre, ou quando criamos um objeto ele não pode ser modificado.

Exemplo:

class Imutabilidade {
  public static void main(String[] args) {
   int valor = 20;
   UnaryOperator<Integer> retornarDobro = v -> v + 2;
   System.out.println(retornarDobro.aplly(valor)); //retorna o dobro do valor
   System.out.println(valor); //valor não será alterado
  }
}



Imperativo x Declarativo


É muito comum aprender programar de forma imperativa, onde mandamos alguém fazer algo. Busque o usuário 15 no banco de dados, valide essas informações do usuário. 

Na programação funcional tentamos programar de forma declarativa, onde declaramos o que desejamos, sem explicitar como será feito.

   

0
1

Comentários (2)

0
Renan Vale

Renan Vale

27/07/2021 22:44

Valeu Yuri!

1
Y

Yuri Silva

27/07/2021 22:07

Toop!

Começando com desenvolvimento FullStack

Brasil