Hoje vim aqui para falarmos, resumidamente, sobre os Padrões de Projeto (ou Design Patterns, em inglês). Você sabe o que são, quais são e para que servem? Não?! Vem comigo que vou te mostrar!
O que é um padrão de projeto?
Eles são como a planta de uma obra, que você pode customizar para resolver um problema no seu projeto de software. Isso quer dizer que os Padrões de Projeto não são partes de código que você pode copiar e colar no seu projeto, mas sim um conceito geral que você poderá aplicar no seu código para resolver aquele problema em específico.
Uma breve história…
Baseado nos conceitos criados por Alexander, os programadores Kent Beck e Ward Cunningham propuseram, em 1987, os primeiros Padrões de Projeto para a área da ciência da computação, mas foi somente em 1995, que o movimento ao redor dos Padrões de Projeto ganhou popularidade nesse meio, com a publicação do livro Design Patterns: Elements of Reusable Object-Oriented Software.
Os autores do livro, Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, ficaram conhecidos como a "Gangue dos Quatro" (Gang of Four, em inglês) ou simplesmente "GoF", sigla que é muito comum de ser ouvida no meio da computação quando se fala sobre Padrões de Projeto.
Posteriormente muitos outros livros sobre o assunto foram publicados, e alguns novos padrões surgiram, como por exemplo os Padrões GRASP (General Responsibility Assignment Software Patterns), que foram definidos no livro “Applying UML and Patterns — An Introduction to Object-Oriented Analysis and Design and the Unified Process” escrito por Craig Larman em 1997.
Os Padrões GoF
O GoF define 23 Padrões de Projeto que estão organizados em três diferentes grupos, divididos de acordo com a natureza do problema que resolvem. São eles:
- Os padrões de criação, que estão relacionados à criação de objetos,
- Os padrões estruturais, que tratam das associações entre classes e objetos, e
- Os padrões comportamentais, que lidam com as interações e divisões de responsabilidades entre as classes e objetos.
Os 23 Padrões de Projeto definidos pelo GoF são:
- Padrões criacionais
- Abstract Factory
- Builder
- Factory Method
- Prototype
- Singleton
- Padrões estruturais
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
- Padrões comportamentais
- Chain of Responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor
Os Padrões GRASP
Enquanto os padrões GoF exploram soluções bem específicas, os padrões GRASP exploram as práticas e princípios da orientação a objetos.
Os padrões definidos no GRASP são:
- Controller (controlador),
- Creator (criador),
- Indirection (indireção),
- Information expert (especialista na informação),
- Alta coesão,
- Baixo acoplamento,
- Polimorfismo,
- Pure fabrication (fabricação/invenção pura), e
- Protected variations (variações protegidas).
- O uso dos padrões nos auxilia a resolver os desafios mais recorrentes durante nosso desenvolvimento, pois são soluções típicas para problemas comuns em projeto de software.
E se você quiser saber mais sobre cada um dos padrões de projeto aqui citado, sugiro a leitura das próximas publicações que ficarão disponíveis na tag Padrões de Projeto aqui no blog.
Forte abraço e nos vemos no próximo post! ;)
Autor: Flávia Melo
Postar um comentário