além Java8

Programação declarativa

"How-to" estilo de programação é perfeito para a programação orientada a objetos clássico, às vezes nós também chamá-lo de programação "imperativo", porque é caracterizada por suas instruções subjacentes computador e vocabulário muito semelhantes, como a atribuição e desvios condicionais ciclo, como no código seguinte:

Transaction mostExpensive = transactions.get(0);
if(mostExpensive == null){
	throw new IllegalArgumentException("Empty list of transaction");
}
for(Transaction t: transactions.subList(1,transactions.size())){
	if(t.getValue() > mostExpensive.getValue()){
		mostExpensive = t;
	}
}

Outra maneira é prestar mais atenção ao que fazer, por exemplo, da seguinte forma:

Optional<Transaction> mostExpensive = transactions.stream().max(comparing(Transaction::getValue));

Esta consulta os detalhes de como conseguir a esquerda final para a biblioteca. Chamamos isso de idéia chamada iteração interna. Sua grande vantagem é que você consulta agora lê como uma descrição do problema, o uso de, desta forma, podemos compreender imediatamente sua função, do que compreender uma série de comandos para ser muito mais concisa.

Com este estilo "o que fazer" da programação é muitas vezes referida programação declarativa. Seus benefícios são óbvios, o código é escrito de tal maneira a mais perto para o problema indicado.

Programação funcional

programação real, você não pode usar a linguagem Java em um puramente funcional para completar um programa. Por exemplo, 0 modelo / I do Java contém um método com efeitos colaterais. Puramente necessidade funcional para usar os mesmos argumentos para chamar uma função matemática, ele retorna o resultado deve ser o mesmo.
Nossos critérios é que a função "funcional" ou método é chamado só pode modificar as variáveis locais. Além disso, o objecto, refere-se a um objecto não deve ser modificado. Através desta disposição, esperamos que todos os campos são do tipo final, todos os tipos de referência apontam para um objeto imutável.
Se você está em um momento de variáveis compartilhadas são alterados, então esta variável em programas multithread é arriscado. Você encapsulamento método para corpo do método para encobrir o problema, bloqueando o caminho, mas depois de fazer isso, eles perderam a capacidade de processador multi-core para executar duas chamadas de método simultâneos.
Em função do tipo de programa, funções de biblioteca a sua função ou chamada de método, se há efeitos colaterais, você deve tentar esconder o seu comportamento não funcional, caso contrário ele não pode chamar esses métodos.

transparência referencial

"Não há efeitos colaterais apreciáveis" (não altere as variáveis visíveis para o chamador não realiza I / O, sem lançar uma exceção), estes limites são referências implícitas a transparência. Se uma função simplesmente passar os mesmos valores dos parâmetros, sempre retornam o mesmo resultado, então esta função é referencialmente transparente.
Em outras palavras, independentemente de onde a função, quando invocado, se as mesmas entradas sempre obter o mesmo resultado de forma contínua, tem as características funcionais. Portanto, um método Random.nextInt não funcional, as variáveis do tipo int finais juntos sempre obter os mesmos resultados.
transparência referencial é uma propriedade importante para entender o programa.

Publicado 75 artigos originais · ganhou elogios 7 · vê 10000 +

Acho que você gosta

Origin blog.csdn.net/zhengdong12345/article/details/103093027
Recomendado
Clasificación