O GoConqr está de visual novo! Conte para nós o que você achou.

Mapa mental

Padrões Grasp

Michel Souza Desenvolvimento de software Português

Padrões Grasp

Conteúdo do mapa

Padrões Grasp

  1. Características

    • GRASP é acrônimo de General Responsability Assignment Software Patterns (ou Principles)
      • To Grasp = Significa tomar, agarrar, apreender, captar, aferrar, pegar de súbito
      • Padrões Grasp descrevem princípios fundamentais de desenho orientado a objetos e definição de responsabilidades, expressos em padrões
      • Esse nome foi escolhido com o intuito de sugerir a importância de agarrar ou captar esses princípios para desenhar projetos de software orientados a objetos da melhor forma possível
      • 9 padrões = 5 padrões básicos + 4 padrões avançados
    • Conjunto de práticas que descrevem os princípios fundamentais de atribuição e de responsabilidade a objetos, expressas na forma de padrões
      • Ajuda a compreender melhor a utilização da orientação a objetos em projetos complexos
    • A qualidade de um projeto orientado a objetos está fortemente relacionada à distribuição de responsabilidades
      • Conhecimento (Knowing)
        • Refere-se à distribuição das características do sistema entre as classes
        • Inferidas a partir do modelo conceitual, i.e., são atributos e relacionamentos
      • Realização (Doing)
        • Refere-se à distribuição do comportamento do sistema entre as classes
        • Realizadas por um único método ou uma coleção de métodos trabalhando em conjunto
      • Os Diagramas de Interação são bastante utilizados para representar responsabilidades
  2. Padrões GOF x Padrões Grasp

    • Padrões GOF: Exploram soluções de projeto mais específicas
    • Padrões Grasp: Refletem práticas mais pontuais da aplicação de técnicas orientadas a objetos
  3. Padrões básicos

    • Information Expert (Expert)
      • Utilizado para determinar para quem delegar as responsabilidades
      • Essas responsabilidades incluem métodos, campos calculados, etc
      • Deve-se atribuir a responsabilidade ao especialista da informação, isto é., a classe que possui a informação necessária para satisfazer essa responsabilidade
    • Creator
      • A criação de objetos é uma das atividades mais comuns em sistemas orientados a objetos
      • Esse padrão é responsável por criar objetos de classes possuindo a responsabilidade unívoca pela criação de uma nova instância de uma classe
    • High Cohesion
      • Busca manter objetos apropriadamente focados, gerenciáveis e compreensíveis
      • Geralmente é utilizado para suportar o baixo acoplamento, enfatizando que as responsabilidades de um dado elemento são fortemente relacionadas e altamente focadas
        • Coesão é a divisão de responsabilidades
    • Low Coupling
      • Responsável por ditar como atribuir responsabilidades para apoiar baixa dependência entre classes
        • O acoplamento está sempre associado à coesão
        • Acoplamento é a dependência entre as partes
      • Determina como suportar mudanças em uma classe que tenham baixo impacto em outras classes e maior potencial de reúso
    • Controller
      • Atribui a responsabilidade de lidar com eventos de sistema a uma classe que não implemente elementos gráficos e represente um sistema completo ou um cenário de caso de uso
      • Um objeto Controller não é uma interface com o usuário, trata-se - na verdade - de um objeto responsável por receber e tratar eventos do sistema
    • Polymorphism
      • Atribui a responsabilidade de definir a variação de comportamentos baseados em tipos aos tipos em que essas variações ocorrem
      • Em outras palavras, não se deve utilizar a lógica condicional para decidir qual comportamento será realizado, mas utilizar os próprios tipos
    • Pure fabrication
      • Apresenta uma classe que não representa um conceito real, mas artificial, no domínio do problema, sendo utilizada para atingir baixo acoplamento, alta coesão e potencial reúso
      • Em outras palavras, ela atribui um conjunto altamente coesivo de responsabilidade a uma classe artificial que não representa um conceito do domínio do problema
      • Polimorfismo a nível de componentes
    • Indirection
      • Atribui responsabilidade a um objeto intermediário para mediar as mensagens entre outros componentes ou serviços para que não sejam diretamente acoplados
      • Cria uma camada de indireção entre os dois componentes que não mais dependem um do outro, i.e., ambos dependem da indireção
    • Protected variations
      • Identifica pontos de variação ou instabilidades potenciais e atribui responsabilidades para criar uma interface estável em volta desses pontos
      • Protege elementos das variações de outros elementos (objetos, sistemas, subsistemas)
        • Envolve o foco de instabilidade em uma interface e usa polimorfismo para criar várias implementações desta interface
      • Polimorfismo a nível de classe
      • Originalmente chamado "Don't talk to strangers"

Imagens e arquivos do mapa

  • Padrões Grasp

Informações

Descrição
Desenvolvimento de software Mapa Mental sobre Padrões Grasp, criado por Michel Souza em 21-04-2018.
Criado por
Michel Souza
Visualizações
0
Avaliação

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?