Este curso apresenta todos os 23 padrões de projeto (design patterns) do livro "Design Patterns" do "Gang of Four" (Gamma, Helm, Johnson, Vlissides) e os ilustra com exemplos e exercícios. Os exercícios ajudam na descoberta e distinção dos padrões de projeto. O curso é dividido em cinco partes, cada um tratando de um grupo de padrões que possuem propósitos semelhantes.
                            Conhecer os 23 GoF Design Patterns é disciplina obrigatória a qualquer desenvolvedor Java. Conhecendo padrões de projeto tradicionais, o desenvolvedor terá mais facilidade em compreender sistemas como frameworks e aplicações que usam os padrões, como diversas aplicações open-source existentes. Poderá analisar e debater esses sistemas em um nível de abstração mais alto proporcionado pelo vocabulário de padrões que terá aprendido. Este curso aprofunda e solidifica o conhecimento dos alunos em relação à análise e design orientado a objetos, permite que se familiarizem mais rapidamente com qualquer sistema, e encontrem soluções com maior facilidade. Promove o reuso, desacoplamento e coesão do software produzido, e contrubui para melhorar a sua qualidade.
                            Dependendo da duração do curso, a parte prática pode ocupar de 30 a 50% do tempo de treinamento (24 ou 32 horas). Na versão completa, um exercício aplicando cada padrão apresentado é proposto. Na versão mais curta, exercícios são propostos em padrões selecionados.
                        Ao final deste curso, o aluno deverá ter condições de
                        - Identificar os 23 padrões de projeto "clássicos" e saber como implementá-los em Java
- Decidir entre padrões que podem ser aplicados em determinado cenário e seu custo-benefício
- Identificar cenários potenciais para aplicação de padrões em suas aplicações Java
- Identificar padrões de projeto já existentes em suas aplicações, em frameworks e aplicações de terceiros
- Comunicar-se com maior clareza empregando no seu vocabulário os nomes dos 23 padrões
                            - Parte 1 - Introdução a padrões de projeto
                            
- Parte 2 - Interfaces
                                
                                    - Introdução
                                    
- 1. Adapter
                                    
- 2. Facade
                                    
- 3. Composite
                                    
- 4. Bridge
                                
 
- Parte 3 - Responsabilidades
                                
                                    - Introdução
                                    
- 5. Singleton
                                    
- 6. Observer
                                    
- 7. Mediator
                                    
- 8. Proxy
                                    
- 9. Chain of Responsibility
                                    
- 10. Flyweight
                                
 
- Parte 4 - Construção
                                
                                    - Introdução
                                    
- 11. Builder
                                    
- 12. Factory Method
                                    
- 13. Abstract Factory
                                    
- 14. Propotype
                                    
- 15. Memento
                                
 
- Parte 5 - Operação
                                
                                    - Introdução
                                    
- 16. Template Method
                                    
- 17. State
                                    
- 18. Strategy
                                    
- 19. Command
                                    
- 20. Interpreter
                                
 
- Parte 6 - Extensão
                                
                                    - Introdução
                                    
- 21. Decorator
                                    
- 22. Iterator
                                    
- 23. Visitor
                                
 
- Parte VI - Estudos de caso
                                
                                    - Combinação de padrões
                                    
- Model-View-Controller (MVC)
                                    
- Padrões na API Java e em Frameworks populares