Padrões Grasp Flashcards

1
Q

Qual padrão tem a intenção de determinar qual classe deve ser responsável por criar instâncias de uma determinada classe?

A

Creator (Criador):

Diretrizes: Uma classe B deve ser responsável pela criação de instâncias de uma classe A se uma ou mais das seguintes condições forem verdadeiras:
B agrega A.
B contém A.
B usa A de forma intensiva.
B possui os dados necessários para inicializar A.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Qual padrão tem a intenção de atribuir a responsabilidade a uma classe que possui a informação necessária para cumprir essa responsabilidade?

A

Information Expert (Especialista em Informação):

Diretrizes: A responsabilidade deve ser atribuída à classe que possui a maior parte da informação necessária para realizá-la.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Qual padrão tem a intenção de definir a responsabilidade de lidar com eventos do sistema e orquestrar a execução de operações para outras classes?

A

Controller (Controlador):

Diretrizes: Atribuir a responsabilidade a uma classe que representa um caso de uso ou um cenário do sistema, ou a uma classe que representa uma entidade significativa do domínio que coordena a atividade.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Qual padrão tem a intenção de reduzir as dependências entre classes para aumentar a reusabilidade e a facilidade de manutenção?

A

Low Coupling (Baixo Acoplamento):

Diretrizes: Atribuir responsabilidades de forma que minimize a dependência de uma classe em relação a outras.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Qual padrão tem a intenção de aumentar a coesão dentro de uma classe para torná-la mais compreensível e fácil de manter?

A

High Cohesion (Alta Coesão):

Diretrizes: Atribuir responsabilidades de forma que as operações de uma classe sejam relacionadas e focadas em uma tarefa específica.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Qual padrão é usado para permitir que diferentes classes tratem de forma uniforme diferentes comportamentos?

A

Polimorfismo - Grasp

Atribuir responsabilidades para variação comportamental entre classes a uma interface comum ou classe abstrata que as classes concretas irão implementar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qual padrão tem a intenção de criar uma classe artificial que não pertence ao domínio do problema para manter baixo acoplamento e alta coesão?

A

Pure Fabrication (Fabricação Pura):

Diretrizes: Introduzir uma classe que não é derivada do modelo conceitual para suportar as responsabilidades de design, como manipulação de persistência, formatação, etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Qual padrão tem a intenção de interpor um intermediário entre duas classes para desacoplar e permitir uma maior flexibilidade?

A

Indirection (Indireção):

Diretrizes: Usar uma classe intermediária para mediar a comunicação entre componentes ou serviços para reduzir o acoplamento.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Qual padrão tem a intenção de proteger elementos de design de variações ou instabilidades em outros elementos?

A

Protected Variations (Variações Protegidas):

Diretrizes: Usar interfaces, encapsulamento e outras técnicas para criar uma barreira contra variações, de forma que mudanças em uma parte do sistema não afetem outras partes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Conjunto de diretrizes para atribuição de responsabilidades em design de software orientado a objetos?

A

GRASP (General Responsibility Assignment Software Patterns)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Quais são os tipos de acoplamento do mais alto para o mais baixo?

A

Conteúdo
Global
Controle
Estrutura
Dados

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Quais são os tipos de coesão da mais alta para mais baixa?

A

Funcional
Sequencial
Comunicação
Procedural
Temporal
Lógica
Coincidente

How well did you know this?
1
Not at all
2
3
4
5
Perfectly