Design Patterns
Design Patterns ou padrões de projetos são técnicas de modelagem orientada a objetos utilizadas para resolver problemas comuns na área de engenharia de software. Um pattern não é um código pronto que você possa simplesmente colocar dentro de sua aplicação, mas sim, um template que auxiliará na resolução de algum problema especifico.
Os Design Patterns se popularizaram com a publicação do livro Design Patterns: Elements Of Reusable Object-oriented Software, que foi escrito em 1995 por Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides. Estes 4 autores também são conhecidos como “Gang of Four” ou simplesmente GoF.
A aplicação correta de um Design Pattern pode trazer algumas vantagens como: otimizar a performance de desenvolvimento, melhorar a reusabilidade e extensibilidade do código. Além disso, os patterns são bastante difundidos pela comunidade a bastante tempo e aplicá-los em um projeto fará com que novos desenvolvedores tenham mais facilidade para compreender o código do seu projeto.
Os design patterns são divididos em três grupos: Creational Design Patterns (Padrões de Criação), Structural Design Patterns (Padrões Estruturais) e Behavioral Patterns (Padrões Comportamentais).
Creational Design Patterns (Padrões de Criação)
São os padrões que abstraem o processo de criação e instanciação de classes e objetos. Ajudam a construir um sistema que funciona sem depender da forma como os objetos são criados, compostos e representados. Os padrões de criação mais conhecidos são Abstract Factory, Builder, Factory Method, Prototype e Singleton.
Structural Design Patterns (Padrões Estruturais):
São os padrões que lidam como objetos e classes são compostos para formar uma estrutura sistêmica maior. Os Padrões Estruturais mais conhecidos são: Adapter, Bridge, Composite, Decorator, Facade, Flyweight e Proxy.
Behavioral Patterns (Padrões Comportamentais):
São os padrões que tratam das iterações e divisões de responsabilidades entre os objetos. Estes padrões descrevem também a forma como os objetos comunicam-se entre si. Os Padrões Comportamentais mais conhecidos são: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method e Visitor.
Ao longo das próximas semanas irei falar sobre cada um dos patterns, apresentando exemplos de implementações aplicadas na resolução de algum problema real. Todos os textos terão base no conteúdo do livro, já citado anteriormente, Design Patterns: Elements Of Reusable Object-oriented Software.
Até breve.
Lucas de Oliveira Gonçalves