Classe - detalhamento Flashcards

1
Q

O que significa implementar uma classe?

A

É dizer que dados e a lógica sobre eles estão juntos, não sempre, mas que a lógica muda mais lentamente que os valores que ela opera

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

Qual o limite de implementação de classes em um programa?

A

Classes são elementos caros, quanto menor o número melhor, contanto que não fiquem inchadas

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

O que envolve o padrão de nomeação ‘Nome simples de superclasse’?

A

Nomear as classes com brevidade, mas mantendo a expressividade
É preferível usar nomes com uma só palavra para classes importantes

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

O que envolve o padrão de nomeação ‘Nome qualificado de subclasse’?

A

Incluir, no início do nome da superclasse, um ou mais modificadores para formar o nome da subclasse
No entanto, quando a subclasse é apenas para compartilhar a implementação e se tornar uma nova raíz na hierarquia é melhor receber seu próprio nome de superclasse

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

Qual o propósito dos nomes das classes?

A

Comunicação com as pessoas

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

O que envolve o padrão para ‘Interface abstrata’?

A

Programar orientado a interfaces, ou conjunto de métodos não implementados

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

Quando interfaces não são necesseráras?

A

Quando o seu custo é apenas especulativo, deve-se procurar flexibilidade no momento em que ela é necessária

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

Porque deve-se procurar flexibilidade somente quando ele realmente é necessária?

A

A necessidade da flexibilidade, o custo da flexibilidade, a imprevisibilidade de onde é preciso haver flexibilidade

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

O que envolve o padrão para ‘Interface’?

A

É uma forma de aplicar o padrão Interface Abstrata informando apenas o que se quer fazer e não os detalhes que envolvem o ‘como fazer’

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

Como interfaces são pouco flexiveis?

A

É aconselhável não alterá-las, pois qualquer mudança numa interface resulta em modificação em todas as classes que a implementam

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

O que envolve o padrão para ‘Classe Abstrata’?

A

Criar interfaces abstratas capazes de se modificarem sem alterar os implementadores existentes

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

Qual a limitação das classes abastratas?

A

Os implementadores podem declarar fidelidade apenas a uma classes abstrata

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

Por que deve-se preocupar em criar classes raízes úteis e instanciáveis?

A

Deve-se ter cuidado para não criar abstrações que nunca serão implementadas
Empenhar-se em tornar instanciáveis as classes-raiz estimula a eliminação de abstrações que não valem a pena

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

O que envolve o padrão para ‘Interface versionada’?

A

Criar uma nova interface com a nova funcionalidade estendendo a anterior, de forma que quem quiser a nova funcionalidade poderá estende-la

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

Por que interfaces alternativas são uma solução feia para um problema feio?

A

Muitas interfaces alternativas perdem forçar a necessidade de o cliente ter de lidar com muitas variações, sinal de que deve-se repensar o projeto

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

O que envolve o padrão para ‘Objeto valor’?

A

Criar objetos que agem como inteiros em vez de serem mutáveis
Ou seja, não se muda o estado apenas se criavam novas instâncias
São objetos representando valores matemáticos, diferentes de objetos de estados mutáveis

17
Q

Por que usar objeto valor?

A

Sabe-se que não há porque se preocupar com transações que flutuam perdidas ou com transações que têm valores alterados depois de terem sido enviadas

18
Q

Por que não usar objeto valor?

A

Por causa da dificuldade em se identificar onde o sistema deve mudar e onde não
Um sistema com muitos objetos valores é sinal de pouca flexibilidade

19
Q

O que envolve o padrão para ‘Especialização’?

A

Envolve comunicar similaridade e diferença entre lógicas e dados, para melhor comunicação do projeto

20
Q

O que envolve o padrão para ‘Subclasse’?

A

É uma forma de aplicar o padrão para Especialização

É como dizer: ‘Estes objetos são como aqueles, exceto por…’

21
Q

Quais pontos negativos à criação de subclasses?

A

Só pode ser usada uma vez
É preciso entender a superclasse antes de entender a subclasse
Mudanças na superclasse são perigosas
Todos esses problemas são agravados por hierarquias profundas

22
Q

Como criar subclasses úteis?

A

Fatorar completamente a lógica da superclasse em métodos que fazem uma única tarefa
Quando se escreve uma subclasse deve-se ser capaz de sobreescrever apenas um método
Não podem ser usadas para expressar lógica mutável, pois será necessário usar condicionais ou delegação para expressar uma lógica que muda

23
Q

O que envolve o padrão para ‘Implementador’ ?

A

A criação de objetos polimórficos que implementam a intenção do código, sem que seja necessário saber como isso é feito pelo cliente

24
Q

O que envolve o padrão para ‘Classe interna’ ?

A

Empacotar a lógica com os dados sem o custo de um novo arquivo.
Úteis para refinamentos de classes interessantes apenas local

25
Q

O que envolve o padrão para ‘Comportamento específico de instância’ ?

A

Se trata de como agir quando um objeto possui um comportamento específico, ou não generalizado pela classe

26
Q

O que envolve o padrão para ‘Condicional’ ?

A

É a forma mais simples de comportamento específico

A proliferação de condicionais reduz a confiabilidade do código

27
Q

O que envolve o padrão para ‘Delegação’ ?

A

Aplica o comportamento específico de instância
A lógica comum é mantida na classe referência
Um truque comum na delegação é passar o delegador como parâmetro para um método delegado

28
Q

O que envolve o padrão para ‘Seletor plugável’ ?

A

Armazenar em um campo o nome do método par ser invocado, sendo depois chamado por reflexão

29
Q

O que envolve o padrão para ‘Classe interna anônima’ ?

A

Criar uma classe que seja usada apenas em um lugar, que pode sobrescrever um ou mais métodos para propósitos estritamente locais
Deve ser curto e simples

30
Q

O que envolve o padrão para ‘Classe biblioteca’ ?

A

Inserir código que não se encaixa em nenhum contexto do projeto em uma classe com métodos estáticos
Mas sempre que possível tente transformar classes biblioteca em objetos