Padrão de Design - Visão Geral
Os padrões de projeto representam as melhores práticas usadas por desenvolvedores experientes de software orientado a objetos. Os padrões de design são soluções para problemas gerais que os desenvolvedores de software enfrentaram durante o desenvolvimento de software. Essas soluções foram obtidas por tentativa e erro por vários desenvolvedores de software durante um período de tempo considerável.
O que é Gang of Four (GOF)?
Em 1994, quatro autores Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides publicaram um livro intitulado Design Patterns - Elements of Reusable Object-Oriented Software que deu início ao conceito de Design Pattern no desenvolvimento de Software.
Esses autores são conhecidos coletivamente como Gang of Four (GOF). De acordo com esses autores, os padrões de design baseiam-se principalmente nos seguintes princípios de design orientado a objetos.
Programa para uma interface, não uma implementação
Favorece a composição do objeto em vez da herança
Uso do Design Pattern
Os Design Patterns têm dois usos principais no desenvolvimento de software.
Plataforma comum para desenvolvedores
Os padrões de design fornecem uma terminologia padrão e são específicos para um cenário particular. Por exemplo, um padrão de design singleton significa o uso de um único objeto, de modo que todos os desenvolvedores familiarizados com o padrão de design único farão uso de um único objeto e podem dizer uns aos outros que o programa está seguindo um padrão singleton.
Melhores Práticas
Os padrões de design evoluíram ao longo de um longo período de tempo e fornecem as melhores soluções para certos problemas enfrentados durante o desenvolvimento de software. Aprender esses padrões ajuda os desenvolvedores inexperientes a aprender o design de software de uma maneira fácil e rápida.
Tipos de padrões de projeto
De acordo com o livro de referência de padrão de design Design Patterns - Elements of Reusable Object-Oriented Software, existem 23 padrões de projeto que podem ser classificados em três categorias: padrões criacionais, estruturais e comportamentais. Também discutiremos outra categoria de padrão de design: padrões de design J2EE.
SN | Padrão e Descrição |
---|---|
1 | Creational Patterns Esses padrões de projeto fornecem uma maneira de criar objetos enquanto ocultam a lógica de criação, em vez de instanciar objetos diretamente usando o novo operador. Isso dá ao programa mais flexibilidade para decidir quais objetos precisam ser criados para um determinado caso de uso. |
2 | Structural Patterns Esses padrões de projeto dizem respeito à composição de classes e objetos. O conceito de herança é usado para compor interfaces e definir formas de compor objetos para obter novas funcionalidades. |
3 | Behavioral Patterns Esses padrões de projeto estão especificamente relacionados à comunicação entre objetos. |
4 | J2EE Patterns Esses padrões de design estão especificamente relacionados com a camada de apresentação. Esses padrões são identificados pelo Sun Java Center. |