Artur Costa
George Dias
Objetivo
Define a estratégia de manter uma
cópia, na memória local, de objetos
buscados de fora de um programa,
como num servidor remoto ou banco de
dados.
 Permite o acesso rápido ao objeto
reduzindo o custo de sua construção no
processo de busca.

Definição
Manter na memória a informação que levaria um longo
tempo pra buscar, para que o próximo acesso seja
mais rápido é chamado Caching.
 Decidir quais e quantos objetos manter na memória é
chamado Cache management.


A figura mostra como o padrão
trabalharia no exemplo do produto:
•
•
•
•
•
1 O ID do produto é passado para o método getProductInfo do objeto
ProductCacheManager.
1.1 O método getProductInfo tenta recuperar a descrição do objeto de
um objeto Cache. Se a tentativa tiver sucesso o método retorna o
objeto.
1.2 Se não for possível recuperar a o objeto da descrição na cache, ele
chama o método getProductInfo do objeto ProductInfoFetcher para
buscar a descrição.
1.3 Muitos cache managers implementam uma política de limitar o
número de objetos na cache pois um grande número de objetos pode
ser um desperdício de memória. Se o cache manager decidir que os
objetos recuperados devam ser guardados na cache mas a cache já
contém o número suficiente de objetos, o cache manager não aumenta
o número de objetos na cache. Ele escolhe um objeto para remover da
cache e passa seu ID para o método RemoveProductInfo do objeto
Cache.
1.4 E quando o cache manager decide que o objeto buscado deve ser
guardado na cache ele chama o método addProductInfo do objeto
Cache.
Estrutura Genérica

Estrutura geral do padrão:
Participantes
•
•
•
•
•
•
Client : Classe que acessa objetos da classe
CacheManager
ObjectKey: Identifica o objeto a ser buscado ou
criado.
Object: Classe que representa o objeto em questão.
CacheManager: Responsável por atender todas as
requisições do cliente buscando as informações
primeiramente no Cache, caso haja falha, recorre ao
ObjectCreator.
ObjectCreator: Classe responsável por criar objetos
que não estão no cache.
Cache : Classe responsável por gerenciar os
objetos armazenados na cache .
Padrões Relacionados
Façade
 Template Method
 Virtual Proxy
 Object Replication
 Optimistic Concurrency
 Ephemeral Cache Item

Exemplo
http://www.developer.com/design/article.
php/630481/Pattern-Summaries-CacheManagement.htm
 http://www.designpatterns.dk/java_patter
ns.html
 Grand,Mark. Patterns in Java vol.1

Download

ppt