GOFs
Histórico de revisão
Data | Versão | Descrição | Autor |
---|---|---|---|
26/05/2019 | 0.1 | Adição dos GOFs Facade, Factory method e Template method | Byron Kamal, Igor Aragão, Igor Veludo, João Pedro Mota, José Aquiles e William Almeida |
26/05/2019 | 0.2 | Adição do GOF State | Igor Aragão |
Introdução
Padrões de projeto são descrições ou modelos de como resolver um problema que podem ser usados em diversas situações.
Os padrões GOF (Gang of Four) são soluções reutilizáveis de software orientado a objetos que são divididos em três categorias: de Criação, Estrutural e Comportamental.
Este documento detalha os padrões GOF utilizados no projeto UnBind.
Factory
É um padrão GOF criacional que define uma interface para criar um objeto, mas deixa que as subclasses decidam quais classes instanciar.
Estrutura genérica
Utilização no projeto UNBIND
O projeto é desenvolvido utilizando o Framework Django da linguagem Python, e o mesmo possui um módulo de Forms no qual é responsável por definir os campos necessários para que seja construído um objeto
Implementação
O modulo Forms de Usuário é responsável por definir os campos de entrada de dado de um usuário, ou seja os atributo necessários para a instanciação de um determinado objeto
A classe meta define qual a model que sera utilizada na construção do formulário, e os fields definem os campos necessários para a construção de um objeto deste tipo.
Utilização deste método pode ser visto no nosso repositório no GitHub, clicando aqui.
Facade
Prover uma interface simplificada para a utilização de várias interfaces de um subsistema.
Estrutura genérica
Utilização no projeto UNBIND
Essa estrutura já é implementada no django com o arquivo urls.py, onde é feito todo o gerenciamento de rotas da aplicação. No django existem vários apps, no qual cada um tem a sua própria url, e o arquivo urls.py nada mais é do que uma fachada que gerencia outras fachadas.
Implementação
Utilização deste método pode ser visto no nosso repositório no GitHub, clicando aqui.
Template Method
Defina o esqueleto de um algoritmo em uma operação, adiando algumas etapas para as subclasses do cliente. Template Method permite que as subclasses redefinam certas etapas de um algoritmo sem alterar a estrutura do algoritmo.
Estrutura Genérica
Utilização no projeto UNBIND
Essa estrutura é utilizada nos forms dos apps da aplicação, onde se define os campos que estarão presentes em determinados formulários.
Implementação
Utilização deste método pode ser visto no nosso repositório no GitHub, clicando aqui.
State
É um padrão GOF comportamental que permite um objeto modificar seu comportamento quando necessário.
Estrutura genérica
Utilização no projeto UNBIND
Essa estrutura será utilizada para gerenciar a troca de estados da classe Atividade.
Implementação
A classe Atividade envolve 7 estados diferentes, sendo eles: Inicial, Disponível, Indisponível, Em Progresso, Em Espera, Finalizada e Descartada.
A prévia da utilização deste método pode ser visto através desse link.