Um breve guia para os padrões de design em JavaScript



Este artigo o ajudará com uma abordagem detalhada sobre os Design Patterns em JavaScript de uma maneira simplificada para melhor compreensão.

são as soluções orientadas a objetos avançadas para os problemas de software comumente recorrentes. Os padrões são designs reutilizáveis ​​e interações de objetos. Cada padrão tem um nome e se torna parte de um vocabulário ao discutir soluções de design complexas.

O que são Design Patterns em JavaScript?

pode ser definido como um template de software ou uma descrição para resolver um problema que ocorre em várias instâncias durante o projeto de um Aplicativo de Software ou Estrutura de Software.





Builder Design Patterns

Agora, vamos discutir a Gangue dos Quatro (GoF)



Bando dos Quatro

o 23 Gangue dos Quatro (GoF) os padrões geralmente são considerados a base de todos os outros padrões.

A Gangue dos Quatro (GoF) de Design Patterns:



Elementos de software orientado a objetos reutilizáveis, Addison-Wesley Professional Computing Series, por Erich Gamma, Richard Helm, Ralph Jhonson, e John Vlissides. TEsses 23 padrões GoF são geralmente considerados a base para todos os outros padrões.Eles são categorizados em três grupos: Criativo, Estrutural e Comportamental.

Tipos de padrões de projeto

Existem basicamente três tipos diferentes de Design Patterns em JavaScript. Eles são os seguintes:

Padrões de Criação

Abstract Factory: Isso cria uma instância com várias famílias de classes. Isso fornece uma interface para a criação de famílias que são objetos relacionados ou dependentes sem nenhuma especificação de suas classes concretas.

Construtor: Esta construção de objeto separada de sua representação. Também separa a construção de um objeto complexo de sua representação, de modo que exatamente o mesmo processo de construção pode ser criado com diferentes representações.

Método de fábrica: Isso cria uma instância para várias classes derivadas. Também define uma interface para criar um objeto, mas permite que a subclasse decida qual classe instanciar. Isso também tem um método de fábrica que permite que uma classe adie a instanciação para subclasses.

Protótipo: É uma instância totalmente inicializada que pode ser copiada ou clonada. Especificamente, os tipos de objetos a serem criados usando uma instância prototípica, criam novos objetos copiando este protótipo.

Singleton: São instâncias totalmente inicializadas para serem copiadas ou clonadas.É um tipo específico de objeto para criar usando uma instância prototípica e criar novos objetos copiando este protótipo.

Padrões Estruturais

Adaptador: Ele combina interfaces de diferentes classes. Também converte a interface de uma classe em outra interface, exceto aquela que tem o cliente. O adaptador também permite que as classes trabalhem juntas de outra forma, devido às interfaces de incompatibilidade.

Ponte: Ele separa a interface de um objeto de sua implementação. Separar um resumo de sua implementação para que os dois possam variar independentemente.

Composto: Uma estrutura em árvore é composta por objetos simples e compostos, objetos compostos em estruturas em árvore para representar hierarquias parte-todo. O Composite permite que os clientes tratem objetos individuais e composições de objetos uniformemente.

Decorador: Adiciona responsabilidades a objetos dinamicamente. Atribui as responsabilidades adicionais a um objeto dinamicamente. Os decoradores também fornecem uma alternativa flexível à subclasse para estender as funcionalidades.

Fachada: Uma única classe que representa um subsistema inteiro e fornece uma interface unificada para um conjunto de interfaces em um sistema. Façade define uma interface de nível superior que torna o subsistema mais fácil de usar.

Peso mosca: Uma instância de baixa granularidade usada para compartilhamento eficiente para oferecer suporte a um grande número de objetos de baixa granularidade com eficiência. Um flyweight é um objeto compartilhado que pode ser usado em vários contextos simultaneamente.O flyweight também atua como um objeto independente em cada contexto - é indistinguível de uma instância dos objetos que não são compartilhados.

Proxy: É um objeto que representa outro objeto. Ele fornece um substituto ou um objeto de espaço reservado para controlar o acesso a ele.

Padrões Comportamentais:

Cadeia de responsabilidade: É uma forma de passar um pedido entre uma cadeia de objetos. Ele evita o acoplamento com o remetente e envia uma solicitação ao seu receptor, dando a mais de um objeto a chance de tratar a solicitação. Os objetos de recebimento são encadeados e transmitidos ao pedido ao longo da cadeia até que um objeto o trate.

Comando: Ele encapsula uma solicitação de comando como um objeto. Solicitação encapsulada como um objeto, permitindo, portanto, parametrizar clientes com diferentes solicitações, solicitações de fila ou log e suportar as operações reversíveis.

Intérprete: É uma forma de incluir elementos de linguagem em um programa. Dada uma linguagem, defina uma representação para sua gramática junto com um intérprete que usa a representação para interpretar sentenças na linguagem.

Iterador: O acesso sequencial dos elementos de uma coleção fornece uma maneira de acessar os elementos de um objeto agregado sequencialmente, sem expor sua representação subjacente.

Mediador: Ele define simplifica a comunicação entre as classes. Defina um objeto que encapsula como um conjunto de objetos interage. Mediador promove o acoplamento fraco, evitando que os objetos se refiram explicitamente uns aos outros e permite que você varie sua interação independentemente.

Lembrança: Ele captura e restaura o estado interno do objeto. Não viola o encapsulamento, captura e externaliza o estado interno de um objeto para que o objeto possa ser restaurado a este estado mais tarde.

tamanho de um array de javascript

Observador: É uma forma de notificar a mudança a várias classes. Ele define uma dependência um-para-muitos entre os objetos de modo que quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente.

Estado: Ele altera o comportamento de um objeto quando seu estado muda. Permite que um objeto altere seu comportamento quando seu estado interno muda. O objeto parecerá mudar sua classe.

Estratégia: Ele encapsula um algoritmo dentro de uma classe e define um algoritmo de família, encapsula cada um e os torna intercambiáveis. A estratégia permite que o algoritmo varie independentemente dos clientes que o utilizam.

Modelo: Adie as etapas exatas de um algoritmo para uma subclasse. Ele define o esqueleto de um algoritmo em uma operação, adiando algumas etapas importantes para as subclasses. O método de modelo nos permite criar uma subclasse para redefinir certas etapas de um algoritmo sem alterar a estrutura do algoritmo.

Visitante: Ele define uma nova operação para uma classe sem alteração. Representam uma operação a ser executada nos elementos de uma estrutura de objeto. Visitante permite definir uma nova operação sem alterar as classes dos elementos nos quais opera.

Com isso, chegamos ao final deste artigo. Espero que você tenha entendido os Design Patterns em JavaScript, seus tipos, importância e implementação.

Agora que você entendeu os fundamentos dos Design Patterns em JavaScript, confira o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. O curso de certificação e treinamento Java J2EE e SOA da Edureka é projetado para estudantes e profissionais que desejam ser um desenvolvedor Java. O curso foi desenvolvido para dar a você uma vantagem na programação Java e treiná-lo para os conceitos básicos e avançados de Java, juntamente com vários frameworks Java como Hibernate Primavera .

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog “Design Patterns in JavaScript” e entraremos em contato com você o mais breve possível.