Neste artigo, vamos explorar as diferentes formas de implementar o padrão de projeto de dutos a partir do básico para soluções mais complexas.
O Padrão de Projeto de Dutos
O padrão de projeto de dutos é um padrão de projeto de software que fornece a capacidade de construir e executar uma seqüência de operações.
Este padrão é melhor usado em conjunto com o padrão de plugin, para construir dinamicamente o pipeline quando a aplicação é iniciada.
Sequência
A implementação mais básica de um pipeline seria uma simples sequência de operações.
A interface de uma operação pode ser invocada para processar dados.
O pipeline processa cada operação uma a uma. A classe pipeline também está implementando a interface IOperation para que eles possam ser combinados.
>222222>
A operação pode ser escrita em uma classe dedicada.
>222222>
Or use um wrapper para criar automaticamente uma operação a partir de uma lambda.
As operações da tubulação devem ser registradas antes que a tubulação seja invocada.
Disjuntor de Circuit
A primeira característica que você deseja adicionar à sua tubulação é adicionar um disjuntor.
A cada operação retornará o resultado: falha ou sucesso.
Se uma operação falhar, a execução do pipeline deve parar.
Assíncrono
Um outro requisito pode ser ter um pipeline que possa lidar com operações assíncronas.
Cada operação terá agora de chamar a próxima operação em pipeline, depois de terminarem de processar os dados.
O pipeline é um pouco mais complexo, porque necessita de definir a próxima operação quando uma nova operação é registada. Outra solução é usar um construtor.
Esta operação é assíncrona e será executada em uma rosca dedicada, quando o tempo estiver esgotado, invocará a próxima operação para continuar o pipeline.
A operação genérica pode ser usada tanto com uma ação simples, ou usar um disjuntor integrado se você usar uma função.
>>222222>
Este exemplo simples utiliza várias das características que implementamos.
>