Logo Passei Direto
Buscar

Padrões de Projeto de Software

Ferramentas de estudo

Questões resolvidas

Analise as seguintes sentenças que descreve as características de um padrão de projeto. Em seguida marque a alternativa que corresponde o padrão de projeto correspondente.
a. Sua aplicação é recomendada naquelas situações em que há necessidade de interpretar uma linguagem qualquer e, ao mesmo tempo, quando se quer representar sentenças da linguagem, como árvores abstratas sintáticas.
b. Descreve como projetar um conjunto de classes para representar e interpretar uma gramática para linguagens simples.
c. A estrutura do padrão sugere que a modelagem do problema seja realizada através de uma gramática recursiva.

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Analise as seguintes sentenças que descreve as características de um padrão de projeto. Em seguida marque a alternativa que corresponde o padrão de projeto correspondente.
a. Sua aplicação é recomendada naquelas situações em que há necessidade de interpretar uma linguagem qualquer e, ao mesmo tempo, quando se quer representar sentenças da linguagem, como árvores abstratas sintáticas.
b. Descreve como projetar um conjunto de classes para representar e interpretar uma gramática para linguagens simples.
c. A estrutura do padrão sugere que a modelagem do problema seja realizada através de uma gramática recursiva.

Prévia do material em texto

1) Padrões de Software são soluções reutilizáveis para 
problemas reincidentes que ocorrem durante o 
desenvolvimento de softwares. Gamma, E. (2009). 
Associe as colunas e marque a alternativa correta: 
1.Model, View, Control 
2.Padrões Estruturais 
3.Padrões Comportamentais 
4.Padrões de Criação 
5.Padrões GOF 
 
( ) Abstraem o processo de instanciação; 
( ) Estão divididos em três famílias; 
Pode diminuir potencialmente o desempenho: a cada camada, 
as representações dos objetos sofrem modificações, e essas 
modificações levam tempo para serem realizadas; 
( ) Tratam das associações entre classes e objetos; 
( ) Tratam das interações e divisões de responsabilidades 
entre as classes ou objetos; 
a) 4,5,1,2, 3 
b) 4,1,5,3, 2 
c) 5,1,3,4, 2 
d) 1,5,2,3, 4 
e) 5,1,3,2, 4 
 
2) Analise as afirmativas abaixo: 
I. A ideia principal que é atribuída no conceito de Padrões de Projeto de 
Software é a "reutilização de ideias (soluções consolidadas) ... Não 
necessariamente de códigos." 
II. A utilização de padrões de projeto de software em um projeto de 
desenvolvimento de programas implica na reutilização de códigos 
prontos feitos por outros desenvolvedores (da empresa ou externos) 
com a finalidade de agilizar o processo de conclusão do software. 
III. Um projeto de desenvolvimento de software que segue padrões de 
projeto não necessita documentar aspectos recorrentes do 
desenvolvimento do software. 
IV. O MVC (Model-View-Controller), GoF (Gang of Four) e GRASP 
(General Responsibility Assignment Software Patterns) são exemplos de 
padrões de projeto de software. 
E assinale a única opção VERDADEIRA acerca das afirmativas acima. 
a) II e III são verdadeiras; 
b) Todas são falsas; 
c) I e IV são verdadeiras; 
d) Todas são verdadeiras; 
e) I, III e IV são verdadeiras. 
 
 
 
 
3) Segundo Metsker, o padrão de projeto GOF 
_____________________ é aplicado para substituir a 
geração de instancias não-inicializadas de uma classe, 
fornecendo novos objetos a partir de uma classe-exemplo: 
a) FACTORY METHOD. 
b) PROTOTYPE. 
c) MEDIATOR. 
d) SINGLETON. 
e) BUILDER. 
 
4) Considere as afirmativas abaixo sobre o padrão Prototype: 
I - Declara um método chamado clone na superclasse abstrata do 
modelo (Prototype). Em função desta declaração, cada classe concreta 
derivada deve ser capaz de gerar uma nova instância de si próprio. 
II - Entre as aplicações para este padrão de projeto está a facilidade de 
instanciar classes em tempo de execução. 
III - Quando as instâncias de uma classe apresentam poucas 
combinações de estados, pode ser mais conveniente definir 
previamente um conjunto de protótipos e cloná-los, sempre que for 
necessário. 
a) Todas as afirmativas estão corretas. 
b) II e III estão corretas e I está errada. 
c) I e III estão corretas e II está errada. 
d) I, II, III estão incorretas. 
e) I e II estão corretas e III está errada. 
 
5) Qual padrão estrutural permite que um objeto utilize serviços 
de outros objetos com interfaces diferentes por meio de 
uma interface única? 
 
a) Facade 
b) Bridge 
c) Composite 
d) Adapter 
e) Flyweight 
 
6) Programadores se deparam muitas vezes com situação onde 
é preciso acrescentar responsabilidades a objetos e não a 
classe. Uma alternativa é atribuir dinamicamente a um dado 
objeto. Este padrão é chamado de: 
a) Singleton. 
b) Instance. 
c) Prototype. 
d) Decorator. 
e) Bridge. 
 
7) O padrão flyweight é um objeto compartilhado, que pode ser 
usado em vários contextos, simultaneamente, pois tem a 
capacidade de funcionar de forma independente em cada 
contexto. Seus métodos e implementações não podem, em 
momento algum, fazer ... 
a) Hipóteses ou asserções sobre fora do contexto no qual o 
objeto opera. 
b) Acoplamento fraco entre o subsistema e seus clientes. 
c) Hipóteses ou exclusões sobre o contexto no qual o objeto 
opera. 
d) Hipóteses ou asserções sobre o contexto no qual o objeto 
opera. 
e) Comparações ou associações sobre o contexto no qual o 
objeto opera. 
 
8) O objetivo do padrão de projeto flyweight é diminuir o 
consumo de memória, porém deve ser utilizado com cautela; 
Gamma et al (2000) recomendam sua utilização somente 
quando todas as condições forem verdadeiras. Assinale dentre 
as opções abaixo a única condição que não é verdadeira: 
a) A aplicação não depende da identidade do objeto. 
b) Uma aplicação utiliza um pequeno número de 
objetos. 
c) Os custos de armazenamento são altos por causa 
da grande quantidade de objetos. 
d) Uma aplicação utiliza um grande número de 
objetos. 
e) Muitos grupos de objetos podem ser substituídos 
por relativamente poucos objetos compartilhados, 
uma vez que estados extrínsecos são removidos. 
 
9) Analise as seguintes sentenças que descreve as 
características de um padrão de projeto. Em seguida marque 
a alternativa que corresponde o padrão de projeto 
correspondente: 
a- Sua aplicação é recomendada naquelas situações em que há 
necessidade de interpretar uma linguagem qualquer e, ao 
mesmo tempo, quando se quer representar sentenças da 
linguagem, como árvores abstratas sintáticas. 
b- Descreve como projetar um conjunto de classes para 
representar e interpretar uma gramática para linguagens 
simples. 
c- A estrutura do padrão sugere que a modelagem do problema 
seja realizada através de uma gramática recursiva. 
a) Adapter. 
b) Chain of responsibility. 
c) Interpreter. 
d) Composite. 
e) Facade. 
 
10) A classe handler é uma classe abstrata, portanto, não pode 
ser instanciada diretamente. Assim, para montar uma cadeia 
de objetos é necessário especializá-la em que tipo de 
classes? Assinale dentre as opções abaixo aquela que está 
correta. 
a) Generalizada. d) Baixa Coesão. 
b) Alto Acoplamento. e) Concretas. 
c) Com método público. 
 
11) O design Pattern que tem a finalidade de usar 
compartilhamento para suportar grandes quantidades de 
objetos, de granularidade fina, de maneira eficiente é 
denominado: 
a) Builder. 
b) Composite. 
c) Flyweight. * 
d) State. 
e) Strategy. 
 
12) O padrão de projeto Singleton é usado para restringir: 
a) A quantidade de classes. 
b) Classes de atributos completos. 
c) A instanciação de uma classe para apenas um objeto. * 
d) A instanciação de uma classe para objetos simples. 
e) As relações entre classes e objetos. 
 
13) Qual padrão compõe objetos em estruturas de arvores para 
representarem hierarquias partes-todo e permite aos clientes 
tratarem de maneira uniforme os objetos individuais e as 
composições de objetos? 
a) Nenhuma das anteriores. 
b) Flyweight. 
c) Builder. 
d) Composite. x 
e) Proxy. 
 
14) Qual padrão está representado na figura abaixo: 
 
a) Facade. 
b) Composite. 
c) Proxy. 
d) Strategy. 
e) Bridge. X 
 
15) Qual padrão usa compartilhamento para suportar 
eficientemente grandes quantidades de objetos de 
granularidade fina? 
a) Bridge. 
b) Composite. 
c) Nenhuma. 
d) Flyweight. x 
e) Facade. 
 
 
 
 
 
 
 
 
16) Qual o objetivo do padrão Proxy? Assinale a opção correta. 
a) Proxy faz uma fachada única para todas as fachadas. 
b) Proxy oferece uma interface única para um conjunto de 
interfaces de um subsistema. 
c) Proxy define uma interface de nível mais elevado que torna 
o subsistema mais fácil de usar. 
d) Proxy expurga o código e delega a uma classe, a terceiros. 
e) Proxy promove um substituto ou ponto através do qual um 
objeto possa controlar o acesso a outro. X 
 
17) Qual padrão define o esqueleto de um algoritmo em uma 
operação, postergando alguns passos para as subclasses e 
permite que subclasses redefinam certos passos de um 
algoritmo sem mudar a estrutura do mesmo? 
a) Nenhum das anteriores. 
b) Command. 
c) State. 
d) Adapter. 
e) Template Method. X 
 
18) O padrão classe Handler é um padrão comportamental GoF. 
Qual afirmativa abaixo NÃO corresponde a esse padrão?a) Fornece um acoplamento mais fraco por evitar a associação 
explicita do remetente de uma solicitação ao seu receptor e 
dar mais de um objeto a oportunidade de tratar a solicitação; 
b) Encadeia os objetos receptores, passando a solicitação ao 
longo da cadeia até que um objeto a trate; 
c) Evita o acoplamento do remetente de uma solicitação ao seu 
receptor, ao dar mais de um objeto a oportunidade de tratar 
a solicitação; 
d) Representa um encadeamento de objetos receptores para o 
processamento de uma série de solicitações diferentes; 
e) A classe Handler é uma classe abstrata, portanto não pode 
ser instanciada diretamente. X 
 
19) Conhecido como padrões da gangue dos quatro, por terem 
sido desenvolvidos por quatro autores, os Padrões GoF 
(Group of Four) estão divididos pelas seguintes famílias de 
padrões: Padrões de Criação ou de Construção, Padrões 
Estruturais e Padrões Comportamentais. 
Considerando os padrões de Criação ou de Construção, 
analise o modelo abaixo e em seguida marque a alternativa 
que define a representação. 
 
 
a) Builder. 
b) Mediator. 
c) Factory Method.x 
d) Singleton. 
e) Facade. 
 
20) Os padrões de projeto podem ser categorizados em três 
grupos: criação, estruturais e comportamentais. São padrões 
do grupo estrutural e do grupo criação, respectivamente: 
a) Façade e Singleton. 
b) Builter e Abstract Factory. 
c) Singleton e Façade. 
d) Abstract Factory e Composite. 
e) Observer e Bridge. 
 
21) Qual padrão especifica os tipos de objetos a serem criados 
usando uma instância-protótipo e cria novos objetos pela 
cópia desse protótipo? 
a) Singleton. 
b) Prototype. x 
c) Factory Method. 
d) Abstract Factory. 
e) Nenhuma das anteriores. 
 
22) Qual padrão garante que uma classe tem somente uma 
instância e fornece um ponto global de acesso a mesma? 
a) Singleton. x 
b) Factory Method. 
c) Nenhuma das anteriores. 
d) Abstract Factory. 
e) Builder. 
 
23) Dado o diagrama de classe identifique o padrão GoF 
estrutural: 
 
a) Flyweight 
b) Proxy 
c) Composite x 
d) Decorator 
e) Facade 
 
24) Ao consultar informações a respeito dos padrões de projeto 
Adapter e Bridge, um Analista de Sistemas identificou uma 
afirmativa INCORRETA. Assinale-a. 
a) O foco do Adapter é a solução de incompatibilidades entre 
duas interfaces existentes. 
b) O Bridge estabelece uma ponte entre uma abstração e suas 
possíveis implementações. 
c) Ambos promovem a flexibilidade ao fornecer um nível de 
endereçamento indireto para outro objeto. 
d) O Adapter é inferior ao Bridge porque não evita a replicação 
de código. x 
e) Ambos são padrões estruturais que possuem alguns atributos 
em comum 
 
 
 
 
 
 
 
25) Que padrão estrutural provê um ponto de atendimento para 
que outro possa controlar o acesso ao primeiro? 
 
a) Flyweight. 
b) Facade. 
c) Proxy. x 
d) Decorator. 
e) Adapter. 
 
26) O presidente de uma empresa determinou que fosse 
disponibilizado um sistema de vendas na Internet. No entanto, 
o software de controle de estoque que deve ser acessado 
pela aplicação de vendas é muito antigo e provê uma API 
(Application Programming Interface) de uso muito complicado. 
Para que os desenvolvedores possam acessar uma interface 
mais simples, o arquiteto do sistema pode determinar o uso 
do padrão de projeto: 
a) Flyweight. 
b) Decorator. 
c) Prototype. 
d) Observer. 
e) Facade. X 
 
27) Um arquiteto de softwares estuda que padrões de projeto 
são apropriados para o novo sistema de vendas de uma 
empresa. Ele deve considerar que o padrão: 
a) Singleton separa uma abstração de sua implementação, de 
modo que os dois conceitos possam variar de modo 
independente. 
b) Builder garante que uma classe seja instanciada somente uma 
vez, fornecendo também um ponto de acesso global. 
c) Chain of Responsibility evita o acoplamento entre o remetente 
de uma solicitação e seu destinatário, dando oportunidade 
para mais de um objeto tratar a solicitação. x 
d) Template Method utiliza compartilhamento para suportar, 
eficientemente, grandes quantidades de objetos de 
granularidade fina. 
e) Bridge separa a construção de um objeto complexo de sua 
representação, de modo que mesmo processo de 
construção possa criar diferentes representações. 
 
28) A implementação do padrão de projeto Chain of 
Responsability requer que cada objeto receptor de uma 
determinada solicitação tenha uma lógica para descrever os 
tipos de solicitação que é capaz de processar e como passar 
adiante aquelas que requeiram processamento por outros 
receptores. A delegação das solicitações pode formar uma 
árvore de recursão, com um mecanismo especial para 
inserção de novos receptores no final da cadeia existente. 
 
Marque a alternativa que NÃO identifica uma vantagem do 
padrão de projeto Chain of Responsability. 
a) Padrão libera um objeto de ter que conhecer qual o outro 
objeto que trata de uma solicitação. 
b) Flexibilidade na atribuição de responsabilidades, ou seja, pode-
se mudar a cadeia de objetos em tempo de execução, 
adicionando ou removendo objetos. 
c) Reduz a interconexão entre os objetos, ao invés de um 
objeto manter uma lista com todos os receptores candidatos, 
eles mantêm uma referência única para o sucessor; 
d) As partes invariantes, conforme a situação, contexto ou 
problema a ser resolvido, podem ser redefinidas em classes 
abstratas gerando interconexão entre os objetos. 
e) Remetente e receptor não têm conhecimento explícito um 
do outro. 
 
29) Sobre o polimorfismo considere a figura abaixo e selecione a 
resposta totalmente correta: 
 
a) Define-se um método físico na classe PAI. Os métodos nas 
classes filho são definidos. Neste caso cada método é 
sobreposto. No caso de uma nova classe filho há necessidade 
obrigatória devido a estrutura PAI de se definir o método na 
nova classe. Isto é polimorfismo. 
b) Define-se vários métodos. Cada método deve ter uma 
estrutura IF...THEN...para cada situação. Isto é polimorfismo. 
c) Define-se uma estrutura de herança. Automaticamente fica 
definido uma estrutura de métodos. Isto é polimorfismo. 
d) Define-se um método na classe PAI. Este método é copiado 
nas classes que herdam a classe PAI. Isto é polimorfismo. 
e) Define-se um método abstrato, em uma classe abstrata. Cada 
classe que herda a classe abstrata implementa o método 
físico. Dependendo da classe instanciada é executado o 
método correspondente. Isto é polimorfismo. X 
 
30) Analise as seguintes afirmações relacionadas a padrões de 
projetos: 
I. O padrão Builder separa a construção de um objeto complexo de sua 
representação, de modo a que o mesmo processo de construção 
possa criar diferentes representações. 
II. O método Abstract Factory fornece uma interface para a criação de 
uma família de objetos relacionados ou dependentes sem especificar 
suas classes completas. 
III. O padrão Bridge define uma interface para criar um objeto, mas deixa 
as subclasses decidirem que classe será instanciada. O Bridge permite a 
uma classe postergar a instanciação das subclasses. 
IV. O Chain of responsability usa compartilhamento para suportar 
grandes quantidades de objetos e define uma dependência um-para-
muitos entre objetos, de modo que quando um objeto muda de estado, 
todos os seus dependentes são automaticamente notificados e 
atualizados. 
Indique a opção que contenha todas as afirmações verdadeiras. 
a) I e III. 
b) II e III. 
c) I e II. x 
d) II e IV. 
e) III e IV. 
 
31) Assinale a afirmativa correta sobre o padrão Builder: 
a) Um dos principais objetivos do padrão Builder é separar o 
algoritmo de criação de um objeto complexo tanto da 
especificação, quanto das partes que o compõem.x 
b) Deve-se é separar no construtor da própria classe a lógica 
para criação de um objeto e concentrar a lógica de criação 
em uma hierarquia de herança.c) A legibilidade da solução final, ou seja, para entender como 
um objeto é criado e sob quais condições, fica comprometida. 
d) Deve-se é embutir no construtor da própria classe a lógica 
para criação de um objeto ou ainda distribuir a lógica de 
criação em vários métodos adicionais. 
e) É uma abordagem que não facilita a criação de objetos com 
diferentes configurações e representações, tornando o 
código dependente a complexidade das classes relacionadas. 
 
32) Em muitas situações de programação, é possível resolver o 
problema de acesso a um determinado objeto com a 
utilização de uma referência a variável desejada, este é um 
mecanismo de simples utilização e bastante conhecido pelos 
desenvolvedores de software. No entanto, quando é 
necessário utilizar um mecanismo mais versátil e sofisticado, 
por exemplo: 
- para postergar a instanciação de um objeto 
- para controlar o acesso ao mesmo 
- para acessá-lo em uma máquina remota 
- para gravá-lo em uma base de dados, a alternativa de utilizar 
uma referência ao objeto não é mais apropriada. 
- utilização de uma superclasse abstrata para definir a 
interface da classe desejada e uma classe derivada adicional 
derivada. 
 
Marque a alternativa que indica o padrão de projeto utilizado 
segundo a descrição acima. 
a) Proxy. x 
b) Facade. 
c) Flyweight. 
d) Coesão. 
e) Acoplamento. 
 
33) O método Arrays.sort (java.util) recebe como parâmetro um 
objeto do tipo Comparator que implementa um método 
compare(a, b) e utiliza-o para definir as regras de ordenação, 
assim evitamos duplicidade de código permitindo sobrescrita 
apenas do critério de comparação do algoritmo de 
ordenação, no qual os outros passos permanecem invariantes. 
Essa situação exemplifica qual dos padrões GOF abaixo: 
a) State. 
b) Template Method. 
c) Builder. 
d) Flyweight. 
e) Command. * 
 
 
34) Qual das afirmativas não é verdadeira? 
a) Um acoplamento definido para que classes que contenham 
métodos que possibilitem alterações de requisitos deve ser a 
menor possível, desta forma se favorece futuras 
manutenções. 
b) O ideal que dois artefatos tenham alta dependência. Isto 
garante um bom desempenho e facilita a manutenção dos 
artefatos. x 
c) Acoplamento é o grau de dependência entre dois artefatos. 
É uma medida de quão forte um elemento está conectado 
ou tem conhecimento de, ou depende de outros elementos. 
d) Dessa forma o padrão Acoplamento Baixo é utilizado para 
atribuir responsabilidades de modo que o acoplamento 
permaneça baixo. 
e) Um alto acoplamento aumenta a dificuldade de entendimento 
da solução proposta, a diminuição das chances de reutilização, 
além de aumentar a complexidade da aplicação. 
 
35) Marque a alternativa que representa o padrão GRASP que 
está relacionada com a seguinte questão: Como distribuir 
responsabilidades buscando alcançar Coesão Alta ou 
Acoplamento Baixo? 
a) Variações protegidas. 
b) Indireção. 
c) Invenção Pura. x 
d) Polimorfismo. 
e) Controlador. 
 
36) Padrões arquiteturais definem os componentes estruturais de 
um sistema, e a forma de comunicação entre eles ou com 
outros sistemas, organizando as regras gerais para a 
concepção de aplicativos com algum perfil funcional 
específico. Plataformas de objetos distribuídos, como o 
CORBA, trabalham em um padrão arquitetural denominado: 
a) Pipeline 
b) Event-Driven 
c) MVC 
d) PAC 
e) Broker x 
 
37) Uma mudança essencial no modelo de programação Java, 
com a evolução do JEE, foi o uso de anotações nas diversas 
tarefas de configuração dos EJBs do aplicativo. Para que serve 
a anotação Local no ambiente de criação de EJBs? 
a) Definir a interface de acesso local ao pool de EJBs. x 
b) Definir a interface de acesso às entidades do JPA. 
c) Definir um contexto de persistência local para o Session Bean. 
d) Definir um Stateful Session Bean. 
e) Definir um Stateless Session Bean. 
 
 
 
 
 
 
 
 
 
 
 
38) Suponha que existam diferentes algoritmos para resolver um 
problema, sendo que cada algoritmo se aplica melhor a um 
contexto específico (ex: volume maior ou menor de dados, 
frequência de modificações e de consultas). Esse padrão 
sugere resolver o problema encapsulando cada algoritmo em 
uma classe distinta, que implementa uma interface padrão 
utilizada pelos módulos clientes desses algoritmos. 
Assinale a alternativa com o nome do padrão que possui o 
propósito descrito no enunciado: 
a) Mediator 
b) Chain of Responsibility 
c) Strategy x 
d) Command 
e) Memento 
 
39) Na implementação desse padrão, cada objeto de uma 
estrutura hierárquica deve definir uma operação Accept, que 
recebe um objeto de uma classe X como parâmetro. A 
classe X, por sua vez, implementa uma interface genérica Z, 
definindo uma operação específica de tratamento para cada 
tipo de objeto que pertença à estrutura hierárquica. 
Assinale a opção com o nome do padrão cuja estrutura de solução foi 
descrita no enunciado. 
a) Template Method 
b) State 
c) Strategy 
d) Observer 
e) Visitor x 
 
40) Que padrão pode ser utilizado para garantir que apenas uma 
instância de uma fábrica (Abstract Factory) seja criada na 
execução de um processo? 
a) Abstract factory. 
b) Builder. 
c) Prototype. 
d) Singleton.x 
e) Factory Method. 
 
41) Os iteradores de coleção em Java obtidos a partir da interface 
Collection são implementados com a aplicação de qual padrão 
de projeto? 
a) Abstract Factory 
b) Factory Method x 
c) Singleton 
d) Prototype 
e) Builder 
 
42) Assinale o padrão que utiliza uma fábrica de objetos de modo 
a gerenciar a instanciação e o compartilhamento de objetos 
imutáveis utilizados em larga escala em um sistema: 
a) Adapter 
b) Flyweight x 
c) Proxy 
d) Facade 
e) Composite 
 
 
 
43) Você está desenvolvendo um sistema que precisa se integrar 
com diferentes sistemas de despacho de produtos fornecidos 
por terceiros. Seu objetivo é isolar os módulos clientes das 
implementações específicas fornecidas pelos terceiros. Para 
isso, você define uma interface genérica do serviço de 
despacho que abstrai essas diferentes implementações, e cria 
pequenos módulos que traduzem essa interface genérica nas 
chamadas específicas requeridas pela interface de cada 
sistema disponibilizado pelos terceiros. 
Assinale a alternativa com o nome do padrão que corresponde a essa 
estratégia de solução: 
a) Adapter x 
b) Bridge 
c) Composite 
d) Proxy 
e) Facade 
 
44) Assinale a alternativa com a afirmação CORRETA sobre o 
padrão Controlador. 
a) O módulo Controlador centraliza o código relacionado à lógica 
de negócio do sistema ou de um caso de uso. 
b) O módulo Controlador coordena e controla os módulos 
responsáveis pela produção da resposta a eventos lógicos de 
sistema gerados pela camada de interface com o usuário. x 
c) O módulo Controlador centraliza a interação do usuário com 
o sistema, capturando os eventos externos e controlando o 
fluxo de navegação das telas e janelas do sistema. 
d) Em uma aplicação Java web, o módulo controlador pode ser 
implementado como um servlet. 
e) O padrão Controlador proposto pelo GRASP equivale ao 
padrão GoF Strategy. 
 
45) Assinale a alternativa com o nome do padrão GRASP que 
recomenda que uma responsabilidade seja atribuída à classe 
que possua o conhecimento necessário para realizá-la, 
evitando, assim, a definição de classes de negócio somente 
com operações de acesso, isto é, operações get/set dos seus 
atributos. 
a) Memento. 
b) Fábrica. 
c) Controlador. 
d) Indireção. 
e) Especialista na Informação. X 
 
46) A arquitetura oferecida pelo JPA modificou a forma do Java 
lidar com os dados, e o conhecimento acerca de suas 
características é fundamental para todo programador que 
utilize a plataforma. Assinale a alternativa INCORRETA acerca 
do JPA: 
a) Precisa de um arquivo de configuraçãodenominado 
persistence.xml. 
b) Trabalha com código anotado Java. 
c) É o mecanismo padrão de ORM do Java. 
d) Com a adoção do JPA eliminamos a necessidade do JDBC. 
x 
e) Permite mapear os relacionamentos da base de dados. 
 
 
47) Os EJBs do tipo Session Bean podem ser divididos em três 
perfis, sendo que um deles permite a ocorrência de apenas 
uma instância por máquina virtual, viabilizando o 
compartilhamento de dados de forma global, entre todos os 
aplicativos do servidor. Qual é o perfil do EJB descrito? 
a) Message Driven Bean 
b) Stateless 
c) Entity 
d) Stateful 
e) Singleton x 
 
48) Suponha que existam diferentes algoritmos para resolver um 
problema, sendo que cada algoritmo se aplica melhor a um 
contexto específico (ex: volume maior ou menor de dados, 
frequência de modificações e de consultas). Esse padrão 
sugere resolver o problema encapsulando cada algoritmo em 
uma classe distinta, que implementa uma interface padrão 
utilizada pelos módulos clientes desses algoritmos. 
Assinale a alternativa com o nome do padrão que possui o propósito 
descrito no enunciado: 
a) Mediator 
b) Memento 
c) Chain of Responsibility 
d) Command 
e) Strategy x 
 
49) Sobre o padrão Observer, assinale a alternativa correta: 
a) Permite o acesso sequencial a objetos organizados em uma 
coleção, sem expor a representação interna dessa coleção. 
b) É frequentemente utilizado na implementação de interfaces 
gráficas complexas, em que uma fonte de informação precisa 
estar sincronizada com diferentes visualizações apresentadas 
simultaneamente para o usuário. x 
c) O conceito de polimorfismo não está presente na solução 
proposta pelo padrão. 
d) Define uma cadeia de objetos responsáveis pelo 
processamento de uma requisição, em que cada objeto da 
cadeia é responsável por observar eventos gerados por um 
elemento central, realizar algum processamento e notificar o 
próximo objeto da sequência para continuar o 
processamento. 
e) É responsável por observar e promover as mudanças de 
estado de um objeto que possui um ciclo de vida complexo. 
 
50) Analise a estratégia de solução a seguir: 
''Definir um construtor private e implementar uma operação 
estática que retorna uma instância criada em uma operação 
com escopo static e armazenada como um atributo static 
dentro da própria classe''. 
Assinale a alternativa com o nome do padrão que define essa estratégia: 
a) Builder 
b) Abstract Factory 
c) Singleton x 
d) Prototype 
e) Factory Method 
 
51) Sobre o padrão Abstract Factory, assinale a alternativa 
correta: 
a) Seu propósito é abstrair o processo de construção de um 
objeto complexo formado por vários passos. 
b) O construtor de cada fábrica deve ser definido como private. 
c) Sua implementação requer a definição de uma operação 
chamada clone em cada fábrica concreta. 
d) Sua implementação pode envolver a aplicação do padrão 
Factory Method. X 
e) Uma fábrica pode criar apenas um tipo de produto. 
 
52) Fornecer aos clientes um objeto intermediário com uma 
réplica da interface do objeto fornecedor que contém os 
métodos que realmente serão executados. Esse objeto 
intermediário delega as requisições dos clientes para o 
fornecedor, como ocorre, por exemplo, quando clientes e 
fornecedores são objetos distribuídos em máquinas 
diferentes. 
Assinale a alternativa com o nome do padrão com esse propósito: 
a) Facade 
b) Decorator 
c) Adapter 
d) Flyweight 
e) Proxy x 
 
53) Um amigo seu está desenvolvendo um sistema com dezenas 
de casos de uso. Esse sistema pode ser usado em uma 
interface web e em um aplicativo móvel. Você o aconselha a 
criar uma classe para cada caso de uso que ficará responsável 
por receber os eventos lógicos recebidos dessas interfaces 
e coordenar a produção das respostas que o sistema deve 
produzir para esses eventos. 
Assinale a alternativa com o nome do padrão GRASP descrito na 
recomendação descrita: 
a) Mediador. 
b) Criador. 
c) Polimorfismo. 
d) Controlador. x 
e) Indireção. 
 
54) Analise as sentenças sobre padrões de projeto de software 
e, em seguida, assinale a alternativa correta: 
 
I. Permitem descrever fragmentos de projeto e reusar ideias 
de projeto: 
II. Dão nome e forma a procedimentos abstratos, regras e 
melhores práticas relativas às técnicas orientadas a objetos: 
III. Ajudam a escolher alternativas de projeto que tornam um 
sistema reutilizável. 
 
a) Apenas II e III estão corretas 
b) Apenas I e III estão corretas 
c) Apenas I e II estão corretas 
d) Todas estão corretas 
e) Apenas II está correta. 
 
55) Sobre o padrão Command: 
 
I - É ideal para acessar elementos de coleções, matrizes ou 
estruturas de dados encadeados 
 
II - A vantagem desta abordagem é que o objeto que está 
realizando a chamada do método não precisa saber nada 
sobre seu funcionamento. 
 
III - Este padrão de projeto oferece uma maior flexibilidade 
na arquitetura do sistema, uma vez que permite a adição de 
novas funcionalidades (comandos) sem a necessidade de 
mudar a arquitetura. 
 
podemos afirmar: 
 
As afirmativas I, II, estão corretas afirmativa III está errada. 
As afirmativas I, III, estão corretas e II errada. 
As afirmativas I, II, III estão incorretas. 
As afirmativas I, II, III e IV estão corretas. 
As afirmativas II, III estão corretas e a afirmativa I está 
errada. 
 
56) Um dos princípios do padrão de arquitetura MVC é a 
separação da lógica da apresentação do modelo. 
 
PORQUE 
 
É, muitas vezes, mais prático manter a visão e o controlador 
unificados, inclusive, por demandas da tecnologia. 
Analisando-se as afirmações acima, conclui-se que ... 
a) As duas afirmações são verdadeiras, e a segunda não justifica 
a primeira. 
b) A primeira afirmação é verdadeira, e a segunda é falsa. 
c) As duas afirmações são falsas. 
d) A primeira afirmação é falsa, e a segunda é verdadeira. 
e) As duas afirmações são verdadeiras, e a segunda justifica a 
primeira. 
 
57) Para fazer a modelagem de um padrão de projeto (design 
pattern) utilizando a UML É DESNECESSÁRIO. 
a) Identificar as soluções comuns para o problema básico. 
b) Fazer a modelagem do mecanismo como uma colaboração, 
fornecendo seus aspectos estruturais, assim como os 
aspectos comportamentais. 
c) Entender o padrão de projeto como uma colaboração 
representada com suas partes estruturais e comportamentais. 
d) Identificar as soluções específicas e particulares para o 
problema básico e retificá-la como um mecanismo. 
e) Identificar os elementos do padrão de projeto que devem ser 
vinculados aos elementos em um contexto específico e 
representá-los como parâmetros para colaboração. 
 
 
 
 
 
 
58) O padrão Variações protegidas tem como característica: 
a) É um princípio básico para fornecer flexibilidade e proteção 
contra diversos tipos de variações em um projeto orientado 
a objetos, tais como: variações nos dados, comportamento, 
hardware, componentes de software, sistemas operacionais, 
entre outros. 
b) Implica que um componente ou classe encapsule somente os 
atributos e operações muito relacionadas a si e com a classe 
do componente ou classe propriamente dito. 
c) Sugere atribuir um conjunto de responsabilidades altamente 
coesas a uma classe artificial ou de conveniência que não 
represente o domínio do problema, algo inventado, para 
apoiar coesão alta, acoplamento baixo e reuso. 
d) É o primeiro objeto além da camada de interface com o 
usuário que é responsável por receber ou tratar uma 
mensagem de operação do sistema. 
e) O objetivo é atribuir responsabilidade a um objeto 
intermediário para servir como mediador entre outros 
componentes ou serviços, para que eles não sejam 
diretamente acoplados. 
 
59) ITERATOR: Fornecer uma maneira de acessar 
sequencialmente os elementos de um objeto agregado sem 
expor sua implementação. (Gamma et al., 2000). Sobre este 
padrão de projetospodemos afirmar com certeza: 
a) É bastante utilizado em programação de sistemas para 
gerenciar a comunicação entre dois ou mais objetos 
b) Oferece uma forma de percorrer este tipo de objeto 
agregado sem conhecer seus detalhes de implementação 
c) É bastante utilizado em programação de sistemas para 
gerenciar a comunicação entre dois ou mais objetos, mas 
não deve ser usado quando associado a percorrer arrays ou 
tabelas. 
d) Considerando objetos que implementam arrays, pode ser 
visto como uma classe intermediária de comunicação e 
gerenciamento, evitando que os objetos se comuniquem de 
forma direta 
e) Tem uma grande facilidade de mudança de comportamento, 
pode-se alterar seu funcionamento sem que seja necessária 
nenhuma mudança nas demais classes envolvidas, desde que 
envolvam coleções e matrizes.