
Autor: Eduardo Guerra
Idioma: Português
Páginas: 272
Ano: 2012
ISBN: 978-85-66250-11-4
Entrega: Quando o pagamento for confirmado o ebook será enviado rapidamente por e-mail.
Conteúdo
Não é trivial compreender bem os design patterns. Entender quando aplicá-los é algo que qualquer desenvolvedor deve saber. Nesse livro, você aprenderá com exemplos práticos e bem contextualizados como aplicar os padrões e em quais situações um é mais indicado que o outro. Diferencie as características particulares de cada padrão, crie aplicações que usam o melhor da orientação a objetos em seu favor e desenvolva aplicações que você conseguirá manter para sempre!
Sumário
1 - Entendendo padrões de projeto
1.1 - Conceitos da orientação a objetos
1.2 - Mas esses conceitos não são suficientes?
1.3 - O primeiro problema: cálculo do valor do estacionamento
1.4 - Strategy: o primeiro padrão!
1.5 - O que são padrões?
1.6 - Como o livro está organizado
2 - Reúso através de herança
2.1 - Exemplo de padrão que utiliza herança - Null Object
2.2 - Hook Methods
2.3 - Revisando modificadores de métodos
2.4 - Passos diferentes na mesma ordem - Template Method
2.5 - Refatorando na direção da herança
2.6 - Criando objetos na subclasse - Factory Method
2.7 - Considerações finais do capítulo
3 - Delegando comportamento com composição
3.1 - Tentando combinar opções do gerador de arquivos
3.2 - Bridge - uma ponte entre duas variabilidades
3.3 - Hook Classes
3.4 - State - variando o comportamento com o estado da classe
3.5 - Substituindo condicionais por polimorfismo
3.6 - Compondo com múltiplos objetos - Observer
3.7 - Considerações finais do capítulo
4 - Composição recursiva
4.1 - Compondo um objeto com sua abstração
4.2 - Composite - quando um conjunto é um indivíduo
4.3 - Encadeando execuções com Chain of Responsibility
4.4 - Refatorando para permitir a execução de múltiplas classes
4.5 - Considerações finais do capítulo
5 - Envolvendo objetos
5.1 - Proxies e decorators
5.2 - Exemplos de Proxies
5.3 - Extraindo um Proxy
5.4 - Adaptando interfaces
5.5 - Considerações finais do capítulo
6 - Estratégias de criação de objetos
6.1 - Limitações dos construtores
6.2 - Criando objetos com métodos estáticos
6.3 - Um único objeto da classe com Singleton
6.4 - Encapsulando lógica complexa de criação com Builder
6.5 - Relacionando famílias de objetos com Abstract Factory
6.6 - Considerações finais do capítulo
7 - Modularidade
7.1 - Fábrica dinâmica de objetos
7.2 - Injeção de dependências
7.3 - Service Locator
7.4 - Service Locator versus Dependency Injection
7.5 - Considerações finais do capítulo
8 - Adicionando operações
8.1 - Classes que representam comandos
8.2 - Cenários de aplicação do Command
8.3 - Double Dispatch - Me chama, que eu te chamo!
8.4 - Padrão Visitor
8.5 - Considerações finais do capítulo
9 - Gerenciando muitos objetos
9.1 - Criando uma fachada para suas classes
9.2 - Separando código novo de código legado
9.3 - Mediando a interação entre objetos
9.4 - Reaproveitando instâncias com Flyweight
9.5 - Considerações finais do capítulo
10 - Indo além do básico
10.1 - Frameworks
10.2 - Utilizando tipos genéricos com os padrões
10.3 - Padrões com Test-driven Development
10.4 - Posso aplicar esses padrões na arquitetura?
10.5 - Comunidade de padrões
10.6 - E agora?