///
Explore grátis as questões de concursos e chegue mais preparado nas provas.
4 questões encontradas
Os padrões de projeto GoF (Gang of Four) propostos por Gamma, Helm, Vlissides e John (2000) são descrições de objetos que se comunicam para resolver um problema genérico de projeto, em um contexto específico.
Dada a descrição dos padrões, associe as colunas relacionando corretamente o objetivo ao nome de seu respectivo padrão.
| Objetivos | Padrões |
|---|---|
| 1) Permitir a um objeto alterar o seu comportamento quando o seu estado interno mudar, ou seja, o objeto irá aparentar mudar de classe. | ( ) State |
| 2) Atribuir responsabilidades adicionais a um objeto dinamicamente, de modo que ele forneça uma alternativa flexível a subclasses para extensão da funcionalidade. | ( ) Decorator |
| 3) Capturar e externalizar um estado interno de um objeto, sem violar o seu encapsulamento, de maneira que o objeto possa ser restaurado para esse estado mais tarde. | ( ) Composite |
| 4) Compor objetos em estrutura de árvore para representar hierarquias do tipo todo-parte, de forma a permitir que os clientes tratem objetos individuais e composições de objetos de maneira uniforme. | ( ) Memento |
| 5) Evitar o acoplamento do remetente de uma solicitação ao seu destinatário, dando a mais de um objeto a chance de tratar a solicitação; nesse sentido, ocorre o encadeamento dos objetos receptores que passam a solicitação até que um objeto a trate. | ( ) Chain of Responsibility |
A sequência correta dessa associação é
Segundo Pressman (2011), as métricas de projeto orientado a objetos fornecem uma indicação da qualidade do projeto e o nível do esforço de teste. Sobre essas métricas, é INCORRETO afirmar que
Observe os recursos de orientação a objetos da linguagem Java a seguir.
import java.util.ArrayList;
abstract class EletroDomestico {
private final String marca;
private final float voltagem;
EletroDomestico(String marca, float voltagem) {
this.marca = marca;
this.voltagem = voltagem;
}
float getVoltagem() {
return voltagem;
}
String getNome() {
return "";
}
}
class Liquidificador extends EletroDomestico {
private final float volumeMaximo;
Liquidificador(String marca, float voltagem, float volume) {
super(marca, voltagem);
this.volumeMaximo = volume;
}
float getVolumeMaximo() {
return volumeMaximo;
}
@Override
String getNome() {
return "Liquidificador";
}
}
public class Principal {
public static void main(String[] args) {
ArrayList<EletroDomestico> equipamentos = new ArrayList<EletroDomestico>();
equipamentos.add(new Liquidificador("X", 110, 3));
StringBuilder sb = new StringBuilder();
for (EletroDomestico equipamento : equipamentos) {
sb.append(equipamento.getNome());
sb.append(": " + equipamento.getVoltagem() + "\n");
}
System.out.println(sb.toString());
}
}O recurso de orientação a objetos da linguagem Java que NÃO está sendo usado no trecho de código acima é
Considere o programa escrito em C++ a seguir.
#include <iostream>
#include <string>
int main(int argc, char* argv[])
{
std::string saltura = argv[1];
std::string slargura = argv[2];
int altura = std::stoi(saltura);
int largura = std::stoi(slargura);
char recheio = argv[3][0];
for (int i = 0; i < altura; i++)
{
for (int j = 0; j < largura; j++)
{
char caractere =
i == 0 || i == altura - 1
? '.'
: (
j == 0 || j == largura - 1
? '|'
: recheio
);
std::cout << caractere;
}
std::cout << std::endl;
}
return 0;
}Para uma execução desse programa com parâmetros de linha de comando “3 6 O”, é correto afirmar que sua saída é