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
php/630481/Pattern-Summaries-Cache- Management.htm php/630481/Pattern-Summaries-Cache- Management.htm ns.html ns.html Grand,Mark. Patterns in Java vol.1