Submarino.com.br

Paginator

Objetivo

Separar o conteúdo em grupos de itens (páginas) e controlar a navegação entre as páginas.

Propósito

É comum em diversos diversos tipos de aplicações apresentarmos ao usuário uma lista de alguma entidade. Em sistemas orientados a cadastro é comum listarmos todos as instancias já cadastradas (normalmente com possibilidade de filtro), em sistemas de e-commerce é normal apresentar a lista de produtos. Rápidamente nos damos conta que estas listas podem ser muitas vezes ser gigantes. Mesmo utilizando filtros o usuário pode ser bombardeado com milhares de resultados para visualização. Processar esta quantidade de informação se torna rápidamente onorosa para o sistema e a performance diminui drásticamente.

A ideia do padrão Paginator é agregar os itens encontrados em conjuntos: páginas. Cada página contém um numero limitado de itens e apenas uma página é carregada por vez. Desta forma o sistema irá apenas processar uma quantidade limitada de itens em cada tela e nunca terá que ler todos os itens de uma só vez.

A paginação não se limita apenas a facilitar a apresentação das nossas listagens, ela pode ser usada como acelerador em processos batch em que não queremos ler cada itens por vez, e também não queremos ler todos os itens de existe de uma só vez. Queremos ler os itens em pacotes (batch), e páginas são uma forma de empacotar os itens.