boaglio
![[Avatar]](/images/avatar/3416a75f4cea9109507cacd8e2f2aefc.jpg)
Joined: 28/09/2005 11:05:16
Messages: 299
Location: Sao Paulo - Brazil
Offline
|
6) Qual a diferença de um filtro PULL para um filtro PUSH ?
Nas primeiras versões do Mentawai, todos os filtros eram PUSH, isto é, os filtros empurravam os dados para o input da action, mesmo que a action não os requisitasse.
Por exemplo, um filtro de conexão (ConnectionFilter) iria colocar uma conexão no input da action sempre que ele fosse executado, mesmo que a action nunca viesse a necessitar da conexão. Dessa forma se quiséssemos colocar o filtro de conexão como global, teríamos que aceitar esse efeito colateral, ou seja, algumas actions teriam que receber uma conexão em seu input, mesmo sem precisar.
A abordagem PULL é mais eficiente e limpa. Um filtro PULL só irá colocar um dado no input da action, no momento em que esse for requisitado do input, ou seja, se ele nunca for requisitado do input o filtro fica inócuo (sem efeito). PULL em inglês significa puxar, isto é, se a action não puxar os dados nada acontece.
Além de mais eficiente, esse tipo de abordagem permite que a maioria dos filtros sejam configurados como globais, reduzindo e simplificando a configuração das actions no ApplicationManager.
Obs: As versões PUSH dos filtros IoCFilter, DIFilter, VOFilter, ConnectionFilter e InjectionFilter foram depreciados e renomeados para PushIoCFilter, DependencyFilter, PushVOFilter, PushConnectionFilter e PushInjectionFilter.
|