Padrão de projeto
Padrões de projeto são soluções reutilizáveis para o desenvolvimento de software. Eles servem como modelos que os programadores podem usar ao criar aplicativos. Eles não são específicos de linguagens de programação individuais, mas sim práticas recomendadas ou heurísticas que podem ser aplicadas em diferentes ambientes de programação.
Embora os padrões de projeto não dependam de uma linguagem, eles geralmente incluem objetos ou classes. Por isso, normalmente são associados à programação orientada a objetos. Os padrões individuais podem ser classificados em três categorias diferentes: 1) padrões de criação, 2) padrões estruturais e 3) padrões comportamentais.
1. Padrões de criação
Os padrões de projeto de criação descrevem maneiras de criar objetos usando métodos apropriados para diferentes situações. Por exemplo, o padrão "Singleton" é usado para criar uma classe básica que terá apenas uma instância. Um exemplo comum é uma variável global definida no código-fonte de um programa. Um padrão "Object Pool" é usado para criar uma classe com um "pool" de objetos que podem ser recuperados quando necessário, em vez de serem recriados. Isso é usado com frequência para fins de cache.
2. Padrões estruturais
Os padrões de projeto estruturais definem as relações entre objetos. Por exemplo, o padrão "Private Class Data" é usado para limitar o acesso a uma classe específica. Isso pode impedir modificações indesejadas em um objeto. Já a classe "Decorator" permite adicionar comportamentos e estados a um objeto em tempo de execução. Isso dá aos programadores a flexibilidade de adicionar quantas classes forem necessárias a um objeto. Um exemplo é um avatar em um jogo de vídeo que acumula armas, armaduras e itens ao longo do jogo. A classe apropriadamente chamada de "Decorator" forneceria uma boa estrutura para esse processo.
3. Padrões comportamentais
Os padrões de projeto comportamentais descrevem o comportamento dos objetos, como a maneira pela qual eles se comunicam entre si. Um exemplo é o padrão "Command", que descreve objetos que executam comandos. O padrão "Memento" registra o estado de um objeto para que ele possa ser restaurado ao estado salvo. Esses dois padrões podem ser usados juntos para realizar operações de desfazer e refazer em um programa.
Resumo
Cada uma das três categorias inclui vários outros padrões de projeto que os programadores podem usar. Embora os padrões forneçam modelos úteis para desenvolvedores de software, às vezes eles são criticados por serem desnecessários ou não serem específicos o suficiente para determinados aplicativos. Portanto, embora os padrões de projeto sejam ferramentas úteis para a programação, não é necessário segui-los exatamente para criar um programa de software bem projetado.
Teste seus conhecimentos