![Page 1: Object Pool Padrões de Projeto. Introdução ao Padrão Pool = Piscina Depósito / Repositório Outros Padrões utilizados ◦Singleton ◦Factory](https://reader036.vdocuments.net/reader036/viewer/2022081502/552fc16e497959413d8ed3aa/html5/thumbnails/1.jpg)
Object PoolObject PoolPadrões de Projeto
![Page 2: Object Pool Padrões de Projeto. Introdução ao Padrão Pool = Piscina Depósito / Repositório Outros Padrões utilizados ◦Singleton ◦Factory](https://reader036.vdocuments.net/reader036/viewer/2022081502/552fc16e497959413d8ed3aa/html5/thumbnails/2.jpg)
Introdução ao PadrãoIntrodução ao PadrãoPool = Piscina Depósito / RepositórioOutros Padrões utilizados
◦Singleton◦Factory
![Page 3: Object Pool Padrões de Projeto. Introdução ao Padrão Pool = Piscina Depósito / Repositório Outros Padrões utilizados ◦Singleton ◦Factory](https://reader036.vdocuments.net/reader036/viewer/2022081502/552fc16e497959413d8ed3aa/html5/thumbnails/3.jpg)
Motivação / AplicabilidadeMotivação / AplicabilidadeObjetos de alto custo de criação.Objetos “reaproveitáveis”.Objetos muito instanciados.
![Page 4: Object Pool Padrões de Projeto. Introdução ao Padrão Pool = Piscina Depósito / Repositório Outros Padrões utilizados ◦Singleton ◦Factory](https://reader036.vdocuments.net/reader036/viewer/2022081502/552fc16e497959413d8ed3aa/html5/thumbnails/4.jpg)
ObjetivoObjetivoRedução de tempo e custo com
instanciações.Reaproveitamento de objetos.Melhoria em performance.Melhor controle sobre os recursos.
![Page 5: Object Pool Padrões de Projeto. Introdução ao Padrão Pool = Piscina Depósito / Repositório Outros Padrões utilizados ◦Singleton ◦Factory](https://reader036.vdocuments.net/reader036/viewer/2022081502/552fc16e497959413d8ed3aa/html5/thumbnails/5.jpg)
Estrutura GenéricaEstrutura Genérica
![Page 6: Object Pool Padrões de Projeto. Introdução ao Padrão Pool = Piscina Depósito / Repositório Outros Padrões utilizados ◦Singleton ◦Factory](https://reader036.vdocuments.net/reader036/viewer/2022081502/552fc16e497959413d8ed3aa/html5/thumbnails/6.jpg)
ParticipantesParticipantes
ClientReusableReusablePool
![Page 7: Object Pool Padrões de Projeto. Introdução ao Padrão Pool = Piscina Depósito / Repositório Outros Padrões utilizados ◦Singleton ◦Factory](https://reader036.vdocuments.net/reader036/viewer/2022081502/552fc16e497959413d8ed3aa/html5/thumbnails/7.jpg)
AbstraçãoAbstraçãoPode ser comparado a bibliotecas ou ao
boliche.
![Page 8: Object Pool Padrões de Projeto. Introdução ao Padrão Pool = Piscina Depósito / Repositório Outros Padrões utilizados ◦Singleton ◦Factory](https://reader036.vdocuments.net/reader036/viewer/2022081502/552fc16e497959413d8ed3aa/html5/thumbnails/8.jpg)
Exemplo PráticoExemplo PráticoProblema:
◦Criação de conexões com BD são custosas – tempo e processamento.
◦A depender do sistema o número de conexões solicitadas pode ser muito grande.
![Page 9: Object Pool Padrões de Projeto. Introdução ao Padrão Pool = Piscina Depósito / Repositório Outros Padrões utilizados ◦Singleton ◦Factory](https://reader036.vdocuments.net/reader036/viewer/2022081502/552fc16e497959413d8ed3aa/html5/thumbnails/9.jpg)
Exemplo PráticoExemplo PráticoSolução:
◦Criar um Pool de conexões que podem ser “emprestadas” e “devolvidas” pelos clientes, evitando a criação de novas instâncias enquanto houver conexões ativas e disponíveis.
![Page 10: Object Pool Padrões de Projeto. Introdução ao Padrão Pool = Piscina Depósito / Repositório Outros Padrões utilizados ◦Singleton ◦Factory](https://reader036.vdocuments.net/reader036/viewer/2022081502/552fc16e497959413d8ed3aa/html5/thumbnails/10.jpg)
Exemplo PráticoExemplo PráticoSolução: Connection Pool
![Page 11: Object Pool Padrões de Projeto. Introdução ao Padrão Pool = Piscina Depósito / Repositório Outros Padrões utilizados ◦Singleton ◦Factory](https://reader036.vdocuments.net/reader036/viewer/2022081502/552fc16e497959413d8ed3aa/html5/thumbnails/11.jpg)
ConsequênciasConsequênciasMelhor
◦performance◦controle de instanciações◦controle de recursos
![Page 12: Object Pool Padrões de Projeto. Introdução ao Padrão Pool = Piscina Depósito / Repositório Outros Padrões utilizados ◦Singleton ◦Factory](https://reader036.vdocuments.net/reader036/viewer/2022081502/552fc16e497959413d8ed3aa/html5/thumbnails/12.jpg)
Possíveis ProblemasPossíveis ProblemasFalta de objetos disponíveis.Falha na política de aquisição / criação.
![Page 13: Object Pool Padrões de Projeto. Introdução ao Padrão Pool = Piscina Depósito / Repositório Outros Padrões utilizados ◦Singleton ◦Factory](https://reader036.vdocuments.net/reader036/viewer/2022081502/552fc16e497959413d8ed3aa/html5/thumbnails/13.jpg)
ResumoResumo“Centro de Controle” para objetos
reutilizáveis.Passo-a-Passo
◦1. Cria-se um singleton.◦2. Povoa-o com um determinado número de
objetos. (Opcional)◦3. Cria a política de empréstimo / devolução◦4. Cria política de validação / invalidação dos
objetos.
![Page 14: Object Pool Padrões de Projeto. Introdução ao Padrão Pool = Piscina Depósito / Repositório Outros Padrões utilizados ◦Singleton ◦Factory](https://reader036.vdocuments.net/reader036/viewer/2022081502/552fc16e497959413d8ed3aa/html5/thumbnails/14.jpg)
Exercício PráticoExercício Prático
![Page 15: Object Pool Padrões de Projeto. Introdução ao Padrão Pool = Piscina Depósito / Repositório Outros Padrões utilizados ◦Singleton ◦Factory](https://reader036.vdocuments.net/reader036/viewer/2022081502/552fc16e497959413d8ed3aa/html5/thumbnails/15.jpg)
EquipeEquipeHenrique VidalShankar Cabus
![Page 16: Object Pool Padrões de Projeto. Introdução ao Padrão Pool = Piscina Depósito / Repositório Outros Padrões utilizados ◦Singleton ◦Factory](https://reader036.vdocuments.net/reader036/viewer/2022081502/552fc16e497959413d8ed3aa/html5/thumbnails/16.jpg)
DúvidasDúvidas
![Page 17: Object Pool Padrões de Projeto. Introdução ao Padrão Pool = Piscina Depósito / Repositório Outros Padrões utilizados ◦Singleton ◦Factory](https://reader036.vdocuments.net/reader036/viewer/2022081502/552fc16e497959413d8ed3aa/html5/thumbnails/17.jpg)
ReferênciasReferências http://www.kircher-schwanninger.de/michael/publications/P
ooling.pdf http://sourcemaking.com/design_patterns/object_pool http://www.oodesign.com/object-pool-pattern.html http://best-practice-software-engineering.ifs.tuwien.ac.at/
patterns/objectpool.html http://www.javaworld.com/javaworld/jw-06-1998/jw-06-
object-pool.html http://www.java2s.com/Code/Java/Collections-Data-
Structure/Simpleobjectpool.htm