um padrão de design fornece uma solução geral reutilizável para os problemas comuns que ocorrem no design de software. O padrão tipicamente mostra relações e interações entre classes ou objetos. A ideia é acelerar o processo de desenvolvimento fornecendo um paradigma de desenvolvimento/design bem testado e comprovado. Padrões de Design são estratégias independentes de linguagem de programação para resolver um problema comum. Isso significa que um padrão de design representa uma ideia, Não uma implementação particular., Usando os padrões de design você pode tornar o seu código mais flexível, reutilizável e sustentável.
não é obrigatório implementar padrões de design em seu projeto sempre. Os padrões de Design não se destinam ao desenvolvimento de projectos. Os padrões de Design são destinados à resolução comum de problemas. Sempre que houver necessidade, você tem que implementar um padrão adequado para evitar tais problemas no futuro. Para descobrir que Padrão usar. Você só tem que tentar entender os padrões de design e seus propósitos. Só então será capaz de escolher o certo.,
Goal:
Understand the purpose and usage of each design pattern. Assim, você será capaz de escolher e implementar o padrão correto conforme necessário. por exemplo, em muitas situações do mundo real, queremos criar apenas uma instância de uma classe. Por exemplo, só pode haver um presidente activo do País de cada vez, independentemente da sua identidade pessoal. Este padrão é chamado de padrão Singleton. Outros exemplos de software podem ser uma única conexão DB compartilhada por vários objetos, pois criar uma conexão DB separada para cada objeto será caro., Da mesma forma, pode haver um único gerenciador de configuração ou gerenciador de erros em uma aplicação que lida com todos os problemas em vez de criar vários gerentes.
Types of Design Patterns
There are mainly three types of design patterns:
- Creational
These design patterns are all about class instanciation or object creation. Estes padrões podem ser mais categorizados em padrões de classe-Criacional e padrões de objeto-Criacional., Enquanto os padrões de criação de classes usam a herança de forma eficaz no processo de instanciação, os padrões de criação de objetos usam a delegação de forma eficaz para obter o trabalho feito. os padrões de design Criacional são o método de fábrica, fábrica abstrata, Construtor, Singleton, objeto Pool, e Protótipo.,caso de Uso de creational padrão de design-
1) Suponha que um desenvolvedor deseja criar uma simples DBConnection classe para se conectar a um banco de dados e deseja acessar o banco de dados em vários locais de código, geralmente o desenvolvedor vai fazer é criar uma instância de DBConnection classe e usá-lo para fazer operações de banco de dados, sempre que necessário. O que resulta na criação de múltiplas conexões do banco de dados como cada instância da classe DBConnection terá uma conexão separada ao banco de dados., A fim de lidar com isso, criamos a classe DBConnection como uma classe singleton, de modo que apenas uma instância de DBConnection é criada e uma única conexão é estabelecida. Porque podemos gerenciar a conexão DB através de uma instância para que possamos controlar o equilíbrio de carga, conexões desnecessárias, etc.2) suponha que você quer criar várias instâncias de tipo semelhante e quer alcançar acoplamento solto, então você pode ir para o padrão de fábrica. Uma classe implementando padrão de projeto de fábrica funciona como uma ponte entre várias classes. Considere um exemplo de usar vários servidores de banco de dados como SQL Server e Oracle., Se você está desenvolvendo uma aplicação usando o banco de dados SQL Server como back-end, mas no futuro precisa mudar o banco de dados para oracle, você vai precisar modificar todo o seu código, de modo que os padrões de projeto de fábrica manter acoplamento solto e implementação fácil que devemos ir para a fábrica para alcançar acoplamento solto e criação de um tipo semelhante de objeto.
- estrutural
estes padrões de design são sobre a organização de diferentes classes e objetos para formar estruturas maiores e fornecer novas funcionalidades., os padrões de design estrutural são Adaptador, Ponte, composto, decorador, fachada, Peso-Mosca, dados de classe privada e Proxy.Caso de Uso de Padrão de projeto estrutural –
1) Quando 2 interfaces não são compatíveis entre si e querem estabelecer uma relação entre elas através de um adaptador é chamado de padrão de projeto do adaptador. O padrão do adaptador converte a interface de uma classe em outra interface ou classe que o cliente espera, i. e. O adaptador permite que as classes trabalhem em conjunto que não poderiam de outra forma por causa da incompatibilidade., então, neste tipo de cenários incompatíveis, podemos ir para o padrão adaptador.padrões comportamentais são sobre a identificação de padrões comuns de comunicação entre objetos e perceber esses padrões.,
padrões Comportamentais são a Cadeia de responsabilidade, de Comando, de Intérprete, Iterator, Mediador, Memento, Null Objeto, o Observador, o Estado, a Estratégia, o método de Modelo, Visitante
Caso de Uso de Design Comportamental Padrão-
1) Modelo padrão define o esqueleto de um algoritmo em uma operação, adiando alguns passos para a sub-classes, Modelo de método permite que subclasses redefinir certos passos de um algoritmo sem alterar o algoritmo de estrutura., Por exemplo, em seu projeto você quer que o comportamento do módulo seja capaz de se estender, de modo que possamos fazer com que o módulo se comporte de novas e diferentes maneiras como os requisitos da aplicação mudam, ou para atender às necessidades de novas aplicações. No entanto, ninguém está autorizado a fazer alterações de código fonte para ele, i. e. Você pode adicionar, mas não pode modificar a estrutura nesses cenários um desenvolvedor pode abordar modelo padrão de design.