Java

Padrões de Projeto (Design Patterns)

Padrões de Projeto podem ser entendidos como descrições de problemas específicos e comuns que ocorrem no desenvolvimento de software e suas respectivas soluções padronizadas e genéricas. Não se trata de um código pronto que deve ser utilizado em uma aplicação, mas sim de uma espécie de template orientando como resolver um problema específico que pode ocorrer em diversas situações. Resultando em soluções elegantes, utilizando dos conceitos fundamentais de orientação a objetos, tais como abstração, polimorfismo, herança, etc., resultando em códigos com baixo acoplamento, coesos e reutilizáveis.

Para cada um dos padrões existe uma motivação, ou seja, a razão pela qual ele foi criado, entender essa motivação é essencial para conseguir fazer o uso desses padrões de forma coerente. Muitos desenvolvedores tentam forçar o uso de padrões de projeto no código o tempo todo, porém é muito importante conhecer a motivação do padrão para decidir se realmente o uso do mesmo faz sentido na situação que se apresenta, caso contrário os padrões podem atrapalhar ao invés de ajudar.

Quatro autores, conhecidos como “The Gang of Four – GOF” , lançaram o livro “Design Patterns: Elements of Reusable Object-Oriented Software” que é uma das referências mais conhecidos sobre Design Pattern. Eles classificaram um conjunto de padrões em três categorias, são elas: Padrões de Criação, Padrões Estruturais e adrões Comportamentais.

Padrões Criacionais são aqueles que abordam questões referentes a criação de objetos e instanciação de classes, os padrões abordados nessa categoria são: Abstract Factory, Builder, Factory Method, Prototype e Singleton.

Padrões Estruturais são os relacionados a composição e e relacionamentos de classes e objetos, fazem parte dessa categoria os padrões: Adapter, Bridge,Composite, Decorator, Facade, Flyweight, Private Class Data e Proxy.

E por fim os Padrões Comportamentais tratam de questões relacionadas a comunicação entre os objetos, responsabilidades e algorítimo.

Anúncios