Padrões de Projeto de Software
Classificado em Tecnologia
Escrito em em português com um tamanho de 2,62 KB.
Introdução
É uma solução geral reutilizável para um problema que ocorre com frequência dentro de um determinado contexto no projeto de software.
Um padrão de projeto não é um projeto finalizado que pode ser diretamente transformado em código fonte ou de máquina, ele é uma descrição ou modelo (template) de como resolver um problema.
Singleton
- Este padrão garante a existência de apenas uma instância de uma classe, mantendo um ponto global de acesso ao seu objeto.
- Quando você necessita de somente uma instância da classe, por exemplo, a conexão com banco de dados, supondo que você chamará diversas vezes a conexão com o banco de dados na mesma execução, se você instanciar toda vez a classe de banco, haverá grande perda de desempenho.
Adapter
- Este padrão é utilizado para 'adaptar' a interface de uma classe. O Adapter permite que classes com interfaces incompatíveis possam interagir.
- Permite que um objeto cliente utilize serviços de outros objetos com interfaces diferentes por meio de uma interface única.
Facade
É um objeto que disponibiliza uma interface simplificada para uma das funcionalidades de uma API.
- Tornar uma biblioteca de software mais fácil de entender e usar;
- Tornar o código que utiliza esta biblioteca mais fácil de entender;
- Reduzir as dependências em relação às características internas de uma biblioteca, trazendo flexibilidade no desenvolvimento do sistema;
- Envolver uma interface mal desenhada, com uma interface melhor definida.
State
- Em certas ocasiões, quando o contexto em que está a desenvolver requer um objeto que possua comportamentos diferentes dependendo de qual estado se encontra, é difícil manejar a mudança de comportamento e os estados desse objeto, tudo dentro do mesmo bloco de código.
- O padrão State propõe uma solução para esta complicação, criando basicamente, um objeto para cada estado possível do objeto que o chama.
Observer
- Define uma dependência um-para-muitos entre objetos de modo que quando um objeto muda o estado, todos seus dependentes são notificados e atualizados automaticamente.
Template Method
- Nos auxilia principalmente, quando temos uma sequência de tarefas ou um algoritmo, com passos que precisam ser implementados.
- É como se ele montasse o esqueleto de um algoritmo de uma forma abstrata, e deixasse para que as classes concretas realizem as devidas implementações.