GOFs Estruturais
Versionamento
Data | Versão | Descrição | Autores |
---|---|---|---|
03/09/2021 | 1.0 | Criação do Documento | Gabriel Batalha, Hugo Bezerra, Lucas Rodrigues, Marcos Adriano |
16/09/2021 | 1.1 | Atualização do Documento | Davi Antônio, Gabriel Batalha, Hugo Bezerra, Kleidson Alves, Lucas Rodrigues, Lucas Gabriel |
17/09/2021 | 1.2 | Adição da Aplicação do Composite | Davi Antônio, Gabriel Batalha, Kleidson Alves, Lucas Rodrigues, Lucas Gabriel |
19/09/2021 | 1.3 | Finalização do Adapter | Hugo Bezerra, Kleidson Alves, Lucas Gabriel, Lucas Rodrigues |
20/09/2021 | 1.4 | Revisão do Documento | Gabriel Batalha, Hugo Bezerra, Kleidson Alves, Lucas Gabriel, Lucas Rodrigues, Davi Antônio, Wellington Jonathan |
Adapter
Introdução
O Adapter é um padrão de projeto estrutural que tem como objetivo permitir a interação e cooperação de diferentes interfaces. Ele irá converter a interface de uma classe para uma que seja esperada pelo cliente. Uma das motivações para a utilização desse padrão é que uma classe poderia deixar de ser reutilizada por não corresponder à uma interface de um domínio requerida por uma aplicação.
Modelagem
Autores: Davi Antônio, Gabriel Batalha, Kleidson Alves, Lucas Rodrigues, Lucas Gabriel
Aplicação
Comentário
O Adapter foi utilizado na classe Client para adaptar os dados provenientes da API para um formato entendível pela aplicação e para formatar os dados da aplicação para serem enviados para a API.
Composite
Introdução
O Composite é um padrão de projeto que se baseia em gerar estruturas em forma de árvores, de modo que estruturas simples ficam gradualmente mais complexas conforme a necessidade de se adicionar mais ramificações a estrutura de árvore, após construída, essa estrutura composite pode ser tratada como se fosse um objeto individual. A chave para o padrão Composite é uma classe abstrata que representa tanto as primitivas como os seus recipientes.
O Flutter utiliza na sua implementação o padrão de projeto composite, dessa forma os widgets utilizados no Flutter são geralmente compostos por outros menores, em uma estrutura de arvore.
Modelagem
Autores: Davi Antônio, Gabriel Batalha, Kleidson Alves, Lucas Gabriel e Lucas Rodrigues
Aplicação
Comentário
No projeto o composite foi utilizado para construção da tela de categoria. A estrutura de árvore pode ser observada nessa tela, visto que ela é construída sobre uma coluna que envolve uma lista de widgets. A coluna é utilizada para ordenar verticalmente outros Composites (CategoryTile) e leafs (Dividers). Já na classe CategoryTile, observamos sua composição pelas leafs Text e Icon. O resultado é que toda a estrutura da tela de categoria será tratada como um único objeto da classe CategoryScreen.
Referências
Padrões de projeto estruturais. Disponível em: https://refactoring.guru/pt-br/design-patterns/structural-patterns. Data de acesso: 03/09/2021
Padrão de Projeto Adapter em Java. Disponível em: https://www.devmedia.com.br/padrao-de-projeto-adapter-em-java/26467. Data de acesso: 19/09/2021
Flutter Design Patterns: 2 — Adapter. Disponível em: https://medium.com/flutter-community/flutter-design-patterns-2-adapter-3f05c02a7c84. Data de acesso: 19/09/2021
Flutter Design Patterns: 4 — Composite. Disponível em: https://medium.com/flutter-community/flutter-design-patterns-4-composite-23473cccf2b3. Data de acesso: 19/09/2021