Skip to content

Padrões de Projeto GoFs Comportamentais Adotados no Projeto

1. Introdução

Algo que na maioria das vezes os projetistas avançados fazem é resolver problemas que reutilizam soluções que funcionaram no passado e os usam repetidamente em outros projetos, por isso que os padrões de projetos e design patterns têm chamado a atenção e despertado o interesse dos projetistas de software, por proporcionar elementos que conduzem ao reaproveitamento de soluções e não apenas a reutilização de código.

Os padrões acabam facilitando reutilizar arquiteturas bem sucedidas para construir softwares de forma mais flexível e fácil de manter. O uso de padrões de projeto pode reduzir a complexidade do processo de projetar software.

Neste arquivo será tratado sobre os padrões de projetos GoFs Comportamentais, onde atuam sobre como responsabilidades são atribuídas as entidades, ou seja, qual o comportamento das entidades. Estes padrões facilitam a comunicação entre os objetos, distribuindo as responsabilidades e definindo a comunicação interna.

2. Princípios e Padrões

2.1. Command

É um padrão de projeto comportamental que transforma um pedido em um objeto independente que contém toda a informação sobre o pedido. Essa transformação permite que você parametrize métodos com diferentes pedidos, atrase ou coloque a execução do pedido em uma fila e suporte operações que não podem ser feitas.

Justificativa: Será utilizado, pois no aplicativo haverá requisições que serão feitas para a API por meio de uma componente/classe específica que possui métodos que irão lidar com cada tipo de requisição (comando).

2.2. Template Method

O Padrão de Projeto Template Method define os passos de um algoritmo e permite que a implementação de um ou mais desses passos seja fornecida por subclasses. Assim, o Template Method protege o algoritmo e fornece métodos abstratos para que as subclasses possam implementá-los.

Justificativa: Sua descrição faz sentido com o projeto. Será usado porque o gerente é o algoritmo primário e os outros atores irão herdar partes das funções do gerente.

2.3. Iterator

O Iterator é um padrão de projeto comportamental que permite a você percorrer elementos de uma coleção sem expor as representações dele (lista, pilha, árvore, etc.).

Justificativa: Será usado porque será necessário iterações em algumas partes do código, para gerenciamento de dados e etapas.

Iterator

Figura 1. Exemplo do padrão GoFs de Iterator

2.4. State

O padrão state permite que um objeto altere o seu comportamento quando o seu estado interno muda. O objeto parecerá ter mudado de classe. O padrão encapsula os estados em classes separadas e delega as tarefas para o objeto que representa o estado atual, nós sabemos que os comportamentos mudam juntamento com o estado interno.

Justificativa: O uso de estados são comuns de serem utilizados no React JS, por isso, também será utilizado.

No código abaixo mostra uma parte de mudança de estado, com um modal.

State

Figura 2. Exemplo do padrão GoFs de State

3. Referências Bibliográficas

Histórico de Revisões

Data Versão Descrição Autor(es)
28/08/2021 1.0 Desenvolvimento de tópicos Emily Dias
29/08/2021 1.1 Adição de tópicos Ítalo Alves
29/08/2021 1.2 Ajuste formatação Emily Dias
29/08/2021 1.3 Adição de tópicos Daniel Primo
03/09/2021 1.4 Adição de justificativas Emily Dias
03/09/2021 1.5 Adição de justificativas Daniel Primo
05/08/2021 2.0 Adição de justificativas Ítalo Alves
06/09/2021 2.1 Revisão e correção ortográfica Tiago Samuel
20/09/2021 2.2 Adição de códigos Emily Dias
20/09/2021 3.0 Adição de imagens e revisão do documento Lucas Boaventura