Design Patterns
Fundamentos da Engenharia de Software
O que são design patterns?
• São técnicas exaustivamente testadas, aprovadas e documentadas, baseadas em experiências anteriores, para solução de um problema genérico em um contexto específico que ocorre com certa freqüência em projetos de software orientados a objetos.
Elementos da descrição de um pattern.
• Nome do pattern
• Propósito
• Aplicabilidade
• Estrutura
• Conseqüências
• Patterns relacionados
GoF
• Os autores Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, conhecidos como “The Gang of Four” ou GoF, propõem 23 patterns em seu livro. Estes patterns são a base para estudos mais aprofundados sobre o assunto.
Factory Method
• Propósito
Define uma interface para criação de um objeto, mas deixa as subclasses decidirem qual classe a ser instanciada. O Factory Method permite a uma classe delegar a instanciação às subclasses.
• Estrutura
Singleton
• Estrutura
• Propósito
Garante que uma classe tenha apenas uma instância e provê um ponto de acesso global a ela.
Façade
• Propósito
Provê uma interface unificada para um conjunto de interfaces em um subsistema. O Façade define uma interface de mais alto nível que torna mais fácil o uso do subsistema.
• Estrutura
Decorator
• Propósito
Agrega responsabilidades adicionais a um objeto dinamicamente. O Decorator provê uma alternativa flexível à criação de subclasses para extensão de funcionalidades (troca herança por delegação).
• Estrutura
Composite
• Propósito
Compõe objetos em estrutura de árvore para representar estruturas do tipo todo-partes. Permite que os clientes tratem objetos individuais e composições de objetos de maneira uniforme.
• Estrutura
Iterator
• Propósito
Provê um modo de acessar seqüencialmente os elementos de um objeto agregado sem expor sua representação básica.
• Estrutura
Strategy
• Propósito
Define uma família de algoritmos, encapsula cada um deles e faz com que eles sejam intercambiáveis. O Strategy permite que o algoritmo varie independentemente dos clientes que o utilizam.
• Estrutura
J2EE Design Patterns:
• MVC
• Business Delegate
• Service Locator
• Value Object
• Session Façade
• Front Controller
• Composite View.
O que esperar do uso de patterns. Por quê aprender?
• Aprender com a experiência dos outros
• Aprender a programar bem com orientação a objetos
• Desenvolver software de melhor qualidade
• Vocabulário comum
• Ajuda na documentação e na aprendizagem
Bibliografia
• Design Patterns - Erich Gamma, Richard Helm,• Ralph Johnson e John Vlissides
• EJB Design Patterns - Marinescu
• Apostila de UML do curso de Java Sênior e J2EE (NCE - UFRJ)- Gilson Tavares
• http://www.javasoft.com/patterns
• http://www.theserverside.com
• Slides do treinamento dado pela empresa "NEKI" aos desenvolvedores da empresa "Acol Consultoria e Sistemas".
Componentes do Grupo
• Alan Kloh
• Luciano Monteiro de Souza
• Rafael Sant Anna da Silva Pereira
• Rodolfo Cordeiro Burla de Aguiar