Utilizando operações encadeadas com processos contínuos

A utilização de operações encadeadas em C# não é nenhuma novidade, utilizamos este recurso em diversas bibliotecas diferentes.

Qualquer método de um objeto que retorne uma instância de si mesmo se torna um método fluente capaz de gerar processos contínuos. Mais uma vez vemos este tipo de implementação na biblioteca System.Linq, onde é possível realizar uma filtragem e uma transformação através dos métodos Where e Select, veja um exemplo:

IEnumerable<int> values = Enumerable.Range(0,10)
values.Where(value => value % 2 == 0)
      .Select(value => value * value);

Como o exemplo anterior mostra, é possível realizar diversas chamadas consecutivas em uma única linha de comando. Isto é o que chamamos de processo contínuo ou fluente.

A Tango implementa uma funcionalidade semelhante em diversos objetos: Option, Either e até mesmo nas próprias coleções como o Linq faz.

Além disso, há um tipo especial de objeto chamado Continuation utilizado principalmente para este tipo de processamento fluente, neste caso tratando uma saída de sucesso e uma saída de erro.

Last updated