Chain of Responsibility e o JS

Gustavo S. Rodrigues
2 min readMar 3, 2017

--

Chain of Responsibility é um patern cuja principal função é evitar a dependência entre um objeto receptor e um objeto solicitante. Consiste em uma série de objetos receptores e solicitantes, onde cada objeto de solicitação possui uma lógica interna que separa quais são tipos de objetos receptores que podem ser manipulados. O restante é passado para o próximo objeto de solicitação da cadeia. Ou seja, assim que instanciado o objeto, os métodos ou conjunto de métodos após sua operação têm como retorno a própria instância this, permitindo assim o encadeamento de métodos de forma sequencial e com baixo acoplamento por permitir que outros objetos da cadeia tenham a oportunidade de tratar uma solicitação.

Show me the code

Resumo

Chain of Responsibility nada mais é do que um método que retorna a própria instancia da classe, ou seja, ele sempre retorna ele mesmo de modo que você possa encadear as chamadas, pois você estará sempre lidando com um objeto “conhecido”.

Mas onde eu vejo isso?

É importante destacar esse patern, pois você o encontrará em diversos locais, inclusive no jQuery e em outra bibliotecas e frameworks, onde existe o conceito de cadeia de ações.

Ex:

$(‘.list’).addClass(‘active’).append(‘<li>test</li>’).show(200).hide(400);

Referências

Notas finais

Esse é o meu primeiro artigo no medium, pretendo começar uma serie sobre boas praticas e formas de se lidar com problemas de projeto em javascript, sobretudo sobre como lidar com a natureza assíncrona do javascript. Estou retomando meu projeto de compartilhar conhecimento, que comecei a alguns anos no meu blog http://gustavobeavis.github.io/ .

--

--

Gustavo S. Rodrigues

Sou um arquiteto de soluções apaixonado por linhas de códigos e por problemas não convencionais