TCM

TCM

  • Sprints
  • Base
  • Modelagem
  • Padrões de Projeto
  • Arquitetura e Reutilização

›GOFs

Sprints

  • Sprint 1
  • Sprint 2
  • Sprint 3
  • Sprint 4
  • Sprint 5
  • Sprint 6
  • Sprint 7
  • Sprint 8
  • Sprint 9

Base

    Planos

    • Gerenciamento do cronograma do projeto
    • Plano de gerenciamento de custos
    • Plano de gerenciamento de riscos

    Pré-Rastreabilidade

    • Rich Picture
    • 5W2H
    • Mapas Mentais
    • Documento de Visão
    • Diagrama de Causa e Efeito

    Elicitação

    • Brainstorm
    • Entrevista
    • Personas
    • Observação

    Metodologia

    • Metodologia

    Modelagem

    • Protótipo

Modelagem

    Diagramas UML

    • Diagrama de Atividades
    • Diagrama de Classes
    • Diagrama de Componentes
    • Diagrama de Comunicação
    • Diagrama de Estados
    • Diagrama de Pacotes
    • Diagrama de Sequência

    Extras

    • Léxico
    • Plano de GCS
    • NFR Framework
    • Diagrama da metodologia
    • Backlog

Padrões de Projeto

    GOFs

    • GOFS Comportamentais
    • GOFs Criacionais
    • GOFS Estruturais

    Grasp

    • GRASP

    Extra

    • Extras
    • Guia de estilo

Aquitetura de software e reutilização

  • Documento de Arquitetura
  • Reutilização de Software

GOFS Estruturais

Introdução

Os padrões estruturais se preocupam com a forma como classes e objetos são compostos para formar estruturas maiores, mas ainda mantendo essas estruturas flexíveis e eficientes. Os de classes utilizam a herança para compor interfaces ou implementações, e os de objeto ao invés de compor interfaces ou implementações, eles descrevem maneiras de compor objetos para obter novas funcionalidades [3].

Metodologia

A partir do estudo da equipe sobre os padrões estruturais e feedback das avaliações, a equipe analisou os diagramas identificando problemas onde os padrões poderiam ser aplicados. A partir desses padrões identificados, a equipe os implementou.

Padrões Estruturais

Versão 1.0

Facade

O Facade é um padrão de projeto estrutural que fornece uma interface simplificada para uma biblioteca, um framework, ou qualquer conjunto complexo de classes [1].

Motivação

É importante uma autenticação nas rotas para evitar que o usuário acesse rotas que não esteja autorizado. Então a equipe optou pelo padrão facade para autenticação, servindo como fachada para acesso as rotas.

Aplicação no projeto

A imagem a baixo representa uma facade de autenticação de usuário, que é usada para um controle de acesso as rotas. Para acessar todas as rotas necessita desta interface, indicando que o usuário está logado ou não na aplicação.

 Método Facade

A imagem a baixo mostra um exemplo do uso da facade de autenticação para acesso a rota de round. que está incluído no arquivo roundRoutes.ts

 Método Facade

Proxy

O Proxy é um padrão de projeto estrutural que permite que você forneça um substituto ou um espaço reservado para outro objeto. Um proxy controla o acesso ao objeto original, permitindo que você faça algo ou antes ou depois do pedido chegar ao objeto original [1].

 Exemplo Proxy

Motivação

Foi usado o padrão Proxy para gerenciar os requests enviados da camada de view, interceptando estes requests e assim formando um middleware que faz o encaminhamento para sua respectiva rota.

Aplicação no projeto

A imagem mostra o uso do padrão proxy para interceptar as request e encaminhas as rotas.

 aplicação Proxy

Conclusão

A partir do estudo e implementação dos padrões GoF estruturais, foi possível encapsular o sistema e evitar expô-lo a terceiros, além de facilitar a manutenibilidade do código de uma forma geral. Caso haja a possibilidade de se aplicar mais padrões estruturais, certamente iremos implementá-los.

Referências

[1]PADRÕES de PROJETO. Disponível em: https://refactoring.guru/pt-br/design-patterns

[2]GAMMA, Erich et al. Design Patterns: Elements of Reusable Object-Oriented Software. 1. ed. Massachusetts: Addison-Wesley Professional, 2009. 426 p. ISBN 0-201-63361-2.

[3] CONHEÇA OS PADRÕES DE PROJETO. Disponível em: https://www.devmedia.com.br/conheca-os-padroes-de-projeto/957

Autor(es)

DataVersãoDescriçãoAutor(es)
24/10/201.0Criação do documentoJoão Pedro e Lucas Alexandre
24/10/201.1Adicionado padrão FacadeJoão Pedro, Lucas Alexandre e Matheus Estanislau
24/10/201.2Adicionado padrão ProxyJoão Pedro, Lucas Alexandre e Matheus Estanislau
26/10/201.3Correções no documentoJoão Pedro, Lucas Alexandre, Matheus Estanislau, Renan Cristyan
26/10/201.4Adicionada conclusãoRenan Cristyan
← GOFs CriacionaisGRASP →
  • Introdução
  • Metodologia
  • Padrões Estruturais
    • Versão 1.0
    • Facade
    • Proxy
  • Conclusão
  • Referências
  • Autor(es)

Tennis Cup Limited