Buscar

Padrões de Projeto de Software

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Análise e Projeto de Sistemas II 
Exercícios 
1) Qual padrão de projeto (design pattern) permite adicionar um comportamento a um objeto já 
existente em tempo de execução? 
a) Façade. 
b) Composite. 
c) Decorator. 
d) Abstract Factory. 
e) Business Delegate. 
 
Suponha que exista uma interface ITraduzFrase que define o método imprimeFrase(). 
Existem, também, as classes InglesTraduzFrase, EspanholTraduzFrase e 
AlemaoTraduzFrase que estendem a interface ITraduzFrase e utilizam o método 
imprimeFrase(). Um Analista utilizou um design pattern que cria objetos de forma dinâmica 
sem conhecer a classe de implementação. A classe FrasePadrao implementa esse padrão 
de forma que, de acordo com o idioma desejado, retorna um objeto do tipo ITraduzFrase. O 
objetivo é que, sendo fornecido o idioma, a frase será nele impressa, em inglês, espanhol 
ou alemão. 
2) Considerando o exemplo e sabendo que a definição do padrão é "Define uma interface para 
criar um objeto, mas permite às classes decidirem qual classe instanciar. Este padrão permite 
a uma classe deferir a instanciação para subclasses.", o nome do padrão usado pelo Analista 
é 
a) Strategy. 
b) Factory Method. 
c) Singleton. 
d) Chain of Responsability. 
 
Adapter.Padrão de projeto é uma técnica que permite reutilizar em seu projeto soluções 
utilizadas anteriormente em outros sistemas. 
3) Considere as seguintes afirmativas a respeito dos padrões de projeto Facade (Fachada) e 
Composite. 
i) Uma das consequências negativas do padrão Facade é que ele aumenta o acoplamento 
entre os subsistemas no qual é aplicado. 
ii) O padrão Facade define uma interface única para acesso a um subsistema, tornando 
mais fácil a utilização de seus serviços. 
iii) No padrão Composite, objetos que representam composições e objetivos primitivos são 
tratados (chamados) de forma idêntica pelo cliente. 
iv) O padrão Composite permite variar dinamicamente a quantidade de objetos primitivos, 
mas não de objetos composite. 
Estão corretas as afirmativas 
a) I e III 
b) I e IV 
c) II e III 
d) II e IV 
 
Padrão de projeto é uma técnica que permite reutilizar em seu projeto soluções utilizadas 
anteriormente em outros sistemas. 
4) Considere as afirmativas presentes no quadro abaixo a respeito dos padrões de projeto 
Adapter e Observer: 
i) Uma das implementações do padrão Adapter é realizada através do uso do mecanismo 
de herança múltipla. 
ii) O padrão Observer é usado para permitir que mudanças no estado de vários objetos 
sejam repassadas para objetos observadores interessados. 
iii) O padrão Adapter permite que o cliente troque os objetos Adapter e Adaptee 
dinamicamente. 
iv) O padrão Observer define a quantidade de objetos observadores (Observer) de um 
dado assunto (Subject) em tempo de inicialização do programa. 
Estão corretas as afirmativas 
a) II e IV 
b) I e IV 
c) II e III 
d) I e III 
 
 
O padrão Layer (Camadas) é um padrão arquitetural que pode ser usado para organização 
dos subsistemas de um sistema de software. 
5) Considere as seguintes afirmativas a respeito do Padrão Layer (Camadas): 
i) O Padrão Layer permite substituição completa de qualquer uma de suas camadas. 
ii) O Padrão Layer (Camadas) define a estruturação de um sistema em várias camadas 
organizadas em uma pilha, onde camadas superiores oferecem serviços para as 
camadas inferiores. 
iii) O Padrão Layer pode trazer problemas de desempenho devido à necessidade de 
processar cada requisição ao sistema através de diferentes camadas. 
iv) As camadas definidas no padrão Layer são: Interface do usuário (GUI), 
Autenticação/Autorização, Negócio (Business) e Dados (Data). 
Estão corretas as afirmativas 
a) II e III. 
b) I e IV. 
c) I e III. 
d) II e IV. 
 
 
6) Um Padrão de Projeto de Software ou Padrão de Desenho de Software, também muito 
conhecido pelo termo original em inglês, Design Pattern, descreve uma solução geral 
reutilizável para um problema recorrente no desenvolvimento de sistemas de software 
orientados a objetos. Não é um código final; é uma descrição ou modelo de como resolver o 
problema do qual trata, que pode ser usada em muitas situações diferentes. Os Padrões de 
Projeto normalmente definem as relações e interações entre as classes ou objetos, sem 
especificar os detalhes das classes ou objetos envolvidos, ou seja, estão num nível de 
generalidade mais alto. Um padrão de projeto define: seu nome; o problema; a solução; 
quando aplicar esta solução e suas consequências. O movimento ao redor de padrões de 
projeto ganhou popularidade com o livro Design Patterns: Elements of Reusable Object-
Oriented Software, publicado em 1995. Os autores desse livro, Erich Gamma, Richard Helm, 
Ralph Johnson e John Vlissides, são conhecidos como a "Gangue dos Quatro" (Gang of Four) 
ou simplesmente "GoF". Os Padrões GOF, são organizados em três famílias, qual das 
alternativas a seguir apresenta a denominação dessas três famílias: 
a) Criação, estruturais e comportamentais; 
b) Criação, arquiteturais e desenvolvimento; 
c) Desenho, estruturais e desenvolvimento; 
d) Definição, arquitetura e desenvolvimento; 
e) Definição, estruturais e comportamentais. 
 
 
7) Um Analista de Sistemas necessita utilizar alguns padrões de projeto para solucionar 
determinados problemas. De acordo com as Categorias de Padrões do Gang of Four− GoF, 
ele vai utilizar um padrão de cada uma das três categorias, pela ordem, a saber: 
− Padrões de Criação 
− Padrões Estruturais 
− Padrões Comportamentais 
Em relação a essas três categorias, os padrões são, respectivamente, 
a) Strategy, Template Method e Decorator. 
b) Factory Method, Flyweight e Memento. 
c) Bridge, Prototype e Composite. 
d) Abstract Factory, Singleton e Observer 
e) Façade, Proxy e Iterator. 
 
Padrão de projeto é uma técnica que permite reutilizar em seu projeto soluções utilizadas 
anteriormente em outros sistemas. 
8) Considere as seguintes afirmativas a respeito do padrão Singleton. 
i) O padrão Singleton pode ser usado para determinar uma quantidade fixa de instâncias 
de uma classe que podem ser criadas em uma aplicação. 
ii) A classe que implementa o padrão Singleton deve manter público seus construtores. 
iii) A implementação comum do padrão Singleton funciona em ambientes multi-threads. 
iv) O padrão Singleton é implementado através de atributos e métodos estáticos na classe 
onde é aplicado. 
Estão corretas as afirmativas 
a) I e IV. 
b) I e III. 
c) II e III. 
d) II e IV. 
 
 
Padrão de projeto é uma técnica que permite reutilizar em seu projeto soluções utilizadas 
anteriormente em outros sistemas. 
9) Considere as afirmações a seguir, acerca dos padrões de projeto Template Method, Adapter e 
Facade. 
i) O padrão Template Method faz uso do mecanismo de delegação para implementar um 
algoritmo. 
ii) O padrão Template Method permite variar partes de um algoritmo e é implementado 
por meio de extensão de classes abstratas. 
iii) O padrão Facade contribui para o aumento do acoplamento entre subsistemas. 
iv) O padrão Adapter pode ser implementado através de herança múltipla. 
Estão corretas as afirmações 
a) III e IV. 
b) I e II. 
c) I e III. 
d) II e IV. 
 
 
Padrão de projeto é uma técnica que permite reutilizar em seu projeto soluções utilizadas 
anteriormente em outros sistemas. 
10) Considerando o padrão de projeto Estratégia (Strategy), é correto afirmar que 
a) uma das consequências positivas desse padrão é que ele reduz a quantidade de classes. 
b) as classes participantes desse padrão são cliente (Client) e estratégia (Strategy). 
c) o padrão permite a implementação de estratégias usando comandos condicionais. 
d) o padrão Strategy permite a definição e o encapsulamento de uma família de algoritmos 
 
Padrão de projeto é uma técnica que permite reutilizar em seu projeto soluções utilizadas 
anteriormente em outros sistemas. 
11) Analise as seguintes afirmativas a respeito da técnica padrão de projeto. 
i) Cada padrão de projeto oferece código-fonte que mostra como utilizar bibliotecasde 
classes diretamente em sua aplicação. 
ii) Cada padrão de projeto busca resolver um problema recorrente de projeto de software 
oferecendo uma solução concreta dentro de um contexto específico. 
iii) Todo padrão de projeto permite flexibilizar um determinado aspecto da sua aplicação. 
iv) Padrões de projeto representam um vocabulário comum que facilita a comunicação e a 
documentação do projeto. 
Estão corretas as afirmativas 
a) II e IV. 
b) I e II. 
c) I e III. 
d) III e IV. 
 
12) Considere o trecho de código ilustrado a seguir: 
 
 
O trecho de código em questão ilustra uma implementação do padrão de projeto: 
a) Builder. 
b) Adapter. 
c) Singleton. 
d) Prototype. 
e) Composite. 
 
13) Sobre padrões de projeto é correto afirmar que: 
a) São considerados padrões estruturais: Adapter, Bridge e Builder. 
b) São considerados padrões de criação: Abstract Factory, Prototype e Composite. 
c) Os padrões "GoF" são organizados em 3 famílias : Padrões de criação, Padrões 
estruturais e Padrões arquiteturais. 
d) Os padrões ajudam a tornar a arquitetura de um framework adequada a aplicações 
diferentes, minimizando a necessidade de modificações. 
e) Um padrão de projeto descreve a arquitetura de um sistema orientado a objetos, os tipos 
de objetos e as interações entre os mesmos. Ele pode ser vislumbrado como o esqueleto – 
template – de uma aplicação que pode ser customizado pelo programador e aplicado a um 
conjunto de aplicações de um mesmo domínio. 
 
14) Com relação ao padrão de projeto Command, é correto afirmar que: 
a) O padrão Command é um padrão de projeto classificado como de propósito estrutural e 
com escopo de classe, possibilitando a execução independente das solicitações 
realizadas. 
b) Como a solicitação é encapsulada em um objeto, não é possível implementar o 
cancelamento das operações, visto que não é possível identificar o que foi feito antes da 
chamada. 
c) O padrão Command permite que os comportamentos de um objeto sejam definidos em 
tempo de execução, permitindo uma maior flexibilidade no desenvolvimento de sistemas 
dinâmicos. 
d) Um dos usos frequentes do padrão Command é quando existe a necessidade de se 
manter somente uma instância de determinada classe no sistema, controlando as 
operações que serão realizadas com ela. 
e) O objetivo da utilização do padrão Command é fazer o encapsulamento de uma solicitação 
em um objeto, possibilitando que um comportamento seja chamado sem saber nada sobre 
qual operação deverá ser executada. 
 
15) Sobre os padrões de projeto, é correto afirmar que: 
a) Com o padrão Decorator, responsabilidade são estaticamente adicionadas ao objeto. Tais 
responsabilidade são definidas em tempo de compilação. 
b) O padrão de projeto Template Method especifica a estrutura de algoritmo dentro de um 
método, onde algumas etapas desse algoritmo são definidas nas subclasses. 
c) No padrão Observer, quando o objeto observador (Observer) sofre alguma alteração, o 
objeto observado (Subject) é notificado para realizar o processamento adequado. 
d) Com o padrão Facade é possível acessar os componentes de um sistema complexo a 
partir de diversas interfaces diferentes, obtendo o acesso direto a componentes internos do 
sistema. 
e) O padrão Iterator fornece uma forma de acessar os elementos de uma estrutura de dados 
a partir da análise interna da estrutura utilizada para armazenar os objetos, sendo 
necessário conhecer o seu funcionamento. 
 
16) Os padrões de projetos podem ser classificados de acordo com o propósito (criacional, 
estrutural ou comportamental) e escopo (Classe ou Objeto). Dessa forma, qual dos seguintes 
padrões do GoF (Gang of Four) tem o propósito estrutural e o escopo de Objeto? 
a) State 
b) Memento 
c) Prototype 
d) Decorator 
e) Abstract Factory 
 
 
Considere o seguinte cenário: 
Em um sistema em desenvolvimento, existe a necessidade de que quando um determinado 
objeto sofra alguma alteração, um outro grupo de objetos seja notificados de forma a 
realizarem o processamento adequado. Esse grupo de objetos interessado na ação é 
dinâmico, sendo necessário que seja feita a solicitação de inclusão ou remoção do grupo. 
17) Baseado nesse cenário, qual padrão de projeto GoF deverá ser utilizado? 
a) Visitor 
b) Observer 
c) Prototype 
d) Command 
e) Decorator 
 
18) Qual dos seguintes itens contém apenas padrões de projeto GoF ('Gang of Four') do tipo 
padrões estruturais? 
a) Façade, Composite, Proxy. 
b) Factory Method, Flyweight, Bridge. 
c) Proxy, Abstract Factory, Composite. 
d) Façade, Composite, Factory Method. 
e) Decorator, Template Method, Façade. 
 
19) Considerando os padrões de projeto do GoF, assinale a afirmação verdadeira. 
a) O padrão Strategy utiliza uma estrutura em árvore para representar as possíveis 
estratégias de implementação de um determinado problema. 
b) O padrão Adapter captura técnicas para suporte ao acesso e percurso de estruturas de 
objetos sem expor sua representação interna. 
c) O padrão Proxy introduz um nível de referência indireta no acesso a um objeto. 
d) O padrão Builder agrega responsabilidade dinamicamente a um objeto com a intenção de 
construir um objeto composto. 
 
 
20) Em relação aos Padrões de Projeto, é correto afirmar: 
a) O Adapter permite que classes com interfaces incompatíveis trabalhem em conjunto. 
b) O Bridge permite compor objetos em estruturas de árvore para representar hierarquias 
todo-parte. 
c) O Singleton desacopla uma abstração de sua implementação. 
d) O Observer define uma interface para criar um objeto. 
e) O Factory Method possibilita anexar responsabilidades adicionais a um objeto 
dinamicamente. 
 
21) Considere que você é o responsável pela especificação da arquitetura de software de um 
sistema de computação que está sendo desenvolvido pela empresa em que você trabalha. 
Considere que existe nesse sistema um requisito que indica que cada requisição do cliente 
deve ser processada para fins de autenticação e controle de acesso. 
Você sabe, pela sua experiência como arquiteto de software, que replicar essa lógica em 
todas as páginas ou em todos os servlets da aplicação não é uma boa solução, sobretudo do 
ponto de vista de manutenção do sistema. 
Utilizando o conhecimento que você possui sobre o catálogo de padrões J2EE, assinale a 
opção que indica o padrão de projeto Java que é indicado por esse catálogo para atender ao 
requisito descrito acima, evitando assim o problema de replicação do código. 
a) Front Controller. 
b) Context Object. 
c) Service Concentrator. 
d) Composite View. 
e) Intercepting Filter. 
 
22) Relacione os padrões de projeto listados a seguir aos seus respectivos propósitos. 
1. Mediator 2. Observer 3. Facade 
( ) Define uma relação de dependência de um ou mais objetos em relação a um 
determinado objeto x, de forma que quando houver uma mudança no estado de x, todos os 
objetos dependentes de x sejam notificados e atualizados automaticamente. 
( ) Define uma interface unificada e de mais alto nível a um conjunto de interfaces de um 
subsistema, facilitando o uso desse subsistema. 
( ) Promove o baixo acoplamento entre um conjunto de objetos, definindo um objeto que 
encapsula a interação entre os objetos desse conjunto de modo a evitar que haja 
referências diretas entre eles. 
Assinale a opção que apresenta a relação correta, segundo a ordem apresentada. 
a) 1 – 2 – 3. 
b) 1 – 3 – 2. 
c) 2 – 1 – 3. 
d) 2 – 3 – 1. 
e) 3 – 2 – 1. 
 
23) Qual das alternativas a seguir NÃO contém um elemento essencial de padrões de projeto, 
segundo a definição clássica GoF? 
a) Nome que seja uma referência significativa para o padrão. 
b) Descrição do problema que explique quando o modelo pode ser aplicado. 
c) Descrição da solução, ou seja, um modelo para uma solução de projeto que pode ser 
implementado de diferentes maneiras. 
d) Declaração das consequências – resultados e compromissos – da aplicação do padrão. 
e) Mecânica para a implementação passo a passo do padrão. 
 
24) Bridge, TemplateMethod e Singleton podem ser utilizados durante o projeto de software 
orientado a objetos, sendo denominações de 
a) padrões de análise (analysis patterns). 
b) normas de coesão de classes. 
c) padrões de projeto (design patterns). 
d) métricas específicas de software orientado a objetos. 
e) tipos de acoplamento. 
 
25) Identifique a alternativa que apresenta um dos principais objetivos do padrão de projeto 
Bridge: 
a) Definir uma classe abstrata que especifica quais objetos devem ser instanciados; 
b) Desacoplar um conjunto de implementações do conjunto de objetos que a utilizam; 
c) Casar um objeto existente, fora de seu controle, com uma interface particular; 
d) Simplificar o uso de um sistema existente, definindo sua própria interface; 
e) Usar somente um subconjunto de um sistema completo; 
 
Como garantimos que uma classe tenha somente uma instância e que essa instância seja 
facilmente acessível? Uma variável global torna um objeto acessível, mas não impede você 
de instanciar múltiplos objetos. 
GAMMA, E. et al. Padrões de Projeto: Soluções reutilizáveis de software orientado a objetos. Porto Alegre: Bookman, 2000. 
26) Em relação ao exposto e ao padrão de projeto Singleton, assinale alternativa que indica uma 
das vantagens do referido padrão. 
a) O padrão de projeto garante a existência de apenas um único objeto da classe em 
questão, disponibilizando um modo de acessá-la. 
b) O padrão aumenta a quantidade de variáveis globais no namespace em questão. 
c) Não é necessário implementar qualquer mecanismo de controle de instância do objeto. 
d) O padrão Singleton não apresenta uma interface simples, uma vez que a implementação 
dele não é trivial. 
e) O padrão faz necessário o uso de variáveis globais. 
 
27) No tocante ao padrão de projeto Decorator, também conhecido como Wrapper, assinale a 
alternativa correta. 
a) O citado padrão resulta em implementações menos flexíveis do que a herança estática. 
b) O Decorator adiciona responsabilidades a um objeto dinamicamente, de modo que 
constitui uma alternativa à prática da implementação de subclasses. 
c) Os objetos resultantes da implementação de um Decorator possuem diversas diferenças, 
porém as formas como eles se conectam são as mesmas. 
d) Uma das vantagens de sistemas implementados no referido padrão é que eles possuem 
diversos objetos parecidos. 
e) O mencionado padrão de projeto não permite adicionar responsabilidades extras ao objeto 
desejado. 
 
28) Com base nas classificações de padrões de projeto de acordo com o respectivo propósito, 
assinale a alternativa correta. 
a) Padrões temporais são aqueles que garantem a chamada dos métodos de cada classe nos 
instantes apropriados. 
b) Padrões estruturais lidam com a composição de classes ou objetos, bem como com a 
própria criação. 
c) Padrões comportamentais caracterizam a forma como objetos ou classes interagem entre 
si e distribuem responsabilidades. É o que ocorre, por exemplo, com o padrão Prototype. 
d) Padrões criacionais se limitam a descrever o processo de criação de um objeto. 
e) Padrões aquisitivos descrevem a forma como os parâmetros de cada método e o valor de 
cada atributo de uma classe são adquiridos. 
 
 
29) Uma programadora precisa mudar a implementação chamada de uma função em tempo de 
execução dependendo da entrada de dados. Um dos requisitos importantes é ocultar do 
usuário desta função a exposição das estruturas de dados complexas, específicas do 
algoritmo. Entre os conhecidos padrões de Projeto de Software Gang of Four (GoF,1994), qual 
é o indicado? 
a) Builder. 
b) Strategy. 
c) Façade. 
d) Template Method. 
 
30) Assinale a alternativa que preenche de forma correta as lacunas da frase abaixo. 
O padrão de projeto _______________ fornece um substituto para outro objeto, a fim de 
controlar o acesso a ele, e o padrão de projeto _______________ define uma dependência de 
um para muitos entre objetos, de modo que, quando um objeto muda de estado, todos os seus 
dependentes são notificados e atualizados automaticamente. 
a) Proxy – Observer 
b) Decorator – Composite 
c) Mediator – Observer 
d) Proxy – Composite 
e) Decorator – State 
 
31) O padrão de projetos chain of responsability é 
a) um padrão arquitetural. 
b) utilizado, quando o objeto que trata a solicitação deve ser escolhido automaticamente. 
c) utilizado, quando especificamos explicitamente o receptor. 
d) um padrão com alto acoplamento. 
e) um padrão GoF estrutural. 
 
32) No que diz respeito a padrões de projetos, assinale a alternativa que apresenta somente 
padrões estruturais. 
a) Adapter, Bridge, Command, Decorator e Template. 
b) Adapter, Command, Flyweight, Observer e Proxy. 
c) Composite, Decorator, Singleton, Template e Proxy. 
d) Bridge, Composite, Decorator, Facade e Proxy. 
e) Bridge, Command, Flyweight, Observer e Singleton. 
 
33) Permite elaborar uma interface para criação de famílias de objetos relacionados ou 
interdependentes, que não especifica suas classes concretas. A partir desse padrão 
consegue-se criar fábricas concretas, que são responsáveis pela criação de novos objetos 
para atender as necessidades do cliente. Portanto, essa prática ajuda a excluir a dependência 
entre o cliente e a classe dos objetos usados por ele. Assinale a alternativa que se refere ao 
padrão de projeto descrito no texto. 
a) Singleton. 
b) Builder. 
c) Prototype. 
d) Factory Method. 
e) Abstract Factory. 
 
34) Factory Metho é um padrão de projeto 
a) estrutural com escopo de classe. 
b) de criação com escopo de classe. 
c) comportamental com escopo de objeto. 
d) estrutural com escopo de objeto. 
 
35) O padrão de projeto comportamental que define uma dependência de um-para-muitos entre 
objetos de modo que, quando um objeto muda de estado, todos os seus dependentes são 
notificados e atualizados automaticamente é o 
a) Facade. 
b) Observer. 
c) Adapter. 
d) Abstract Factory. 
e) Prototype. 
 
36) O modelo de requisitos define um conjunto completo de classes de análise. Cada uma 
descreve algum elemento do domínio do problema, focalizando os aspectos visíveis ao 
usuário ou ao cliente. O nível de abstração de uma classe de análise é relativamente alto. 
Conforme o modelo de projeto evolui, a equipe de software deve definir um conjunto de 
classes de projeto que sejam implementadas e criar um novo conjunto de classes de projeto 
que implemente uma infraestrutura de software que suporte a solução de negócio. NÃO fazem 
parte dos tipos de classes de projeto: 
a) Classes de sistema e classes persistentes. 
b) Classes de interface e classes de sistema. 
c) Classes de processo e classes de atributos. 
d) Classes do domínio de negócio e classes de sistema. 
 
37) “Os padrões de projeto abrangem um amplo aspecto de abstração e aplicação. Os padrões de 
_________________ descrevem problemas de projeto de caráter amplo e diverso, resolvidos 
usando-se uma abordagem estrutural. Os padrões de ________________ descrevem 
problemas orientados a dados recorrentes e as soluções de modelagem de dados que podem 
ser usadas para resolvê-los. Os padrões de __________________ tratam de problemas 
associados ao desenvolvimento de subsistemas e componentes, a maneira através da qual 
eles se comunicam entre si e seu posicionamento em uma arquitetura maior. Os padrões de 
________________ descrevem problemas comuns de interface do usuário e suas soluções.” 
Acerca dos padrões de projeto de software, assinale a alternativa que completa correta e 
sequencialmente a afirmativa anterior. 
a) dados / arquitetura / componentes / projeto de interfaces 
b) componentes / arquitetura / dados / projeto de interfaces 
c) arquitetura / dados / componentes / projeto de interfaces 
d) projeto de interfaces / arquitetura / dados / componentes 
 
 
38) Acerca de um dos padrões de projeto, analise a seguinte afirmativa: “fornecer uma alternativa 
flexível ao uso de subclasses para extensão de funcionalidade e, dinamicamente, agregar 
responsabilidades adicionais a um objeto”. 
Trata-sedo padrão: 
a) Proxy. 
b) Visitor. 
c) Iterator. 
d) Decorator. 
 
 
39) “Sua intenção é separar a construção de um objeto complexo da sua representação de modo 
que o mesmo processo de construção possa criar diferentes representações.” Trata-se do 
padrão: 
a) State. 
b) Bridge. 
c) Façade. 
d) Builder. 
 
40) Em um projeto de sistemas deve-se considerar que mudanças podem ser necessárias ao 
longo de sua utilização. Padrões de projeto ajudam a evitar esses possíveis problemas, pois 
garantem que o sistema pode mudar segundo maneiras específicas. Em diversas causas 
comuns de reformulação de projetos, alguns padrões podem ajudar a tratar esses problemas. 
Um deles pode ser a dependência da plataforma de hardware e software. Assinale a 
alternativa que apresenta os padrões de projeto que tratam desse problema. 
a) Abstract Factory; Bridge. 
b) Builder; Iterator; Strategy. 
c) Composite; Decorator; Observer. 
d) Chain of Responsibility; Command. 
 
 
41) Relacione adequadamente as colunas acerca do escopo de alguns dos padrões de projeto. 
1. Classe. 
2. Objeto. 
( ) Bridge. 
( ) Façade. 
( ) Adapter. 
( ) Observer. 
( ) Interpreter. 
A sequência está correta em 
b) 2, 1, 1, 2, 1. 
c) 1, 2, 2, 1, 2. 
d) 2, 2, 1, 2, 1. 
e) 1, 2, 2, 2, 2. 
 
42) Padrões de projetos podem ser classificados em dois critérios: escopo e finalidade. Escopo 
especifica se o padrão se aplica primariamente a classes e objetos, e finalidade reflete o que o 
padrão faz. Quanto à finalidade, os padrões podem ser classificados em três categorias. 
Assinale a INCORRETA. 
a) Criação. 
b) Estrutural. 
c) Reutilização. 
d) Comportamental. 
 
43) Um padrão de projeto nomeia, identifica e abstrai os aspectos-chave de uma estrutura de 
projeto comum para torná-la útil para a criação de um projeto orientado a objetos reutilizável. 
Um padrão, em geral, possui quatro elementos essenciais; assinale-os. 
a) Solução; aplicação; abstração; e, reutilização. 
b) Problema; elementos; abstração; e, consequências. 
c) Consequências; aplicação; reutilização; e, problema. 
d) Nome do padrão; problema; solução; e, consequências. 
 
44) O padrão de projeto do tipo comportamental conhecido como iterator 
a) agrega, de forma dinâmica, responsabilidades adicionais a um objeto. 
b) permite uma maneira de acessar, de forma sequencial, os elementos de um objeto 
agregado sem a exposição de sua representação subjacente. 
c) representa uma operação a ser executada nos elementos de uma estrutura de objetos. 
d) garante que uma classe deverá instanciar um único objeto e fornecer um ponto global de 
acesso a mesma classe. 
 
45) Um exemplo de padrão de projeto do tipo criação é o 
a) composite. 
b) proxy. 
c) interpreter. 
d) prototype. 
 
46) Considerando os padrões definidos pelo GoF (Gang of Four), assinale a opção correta. 
a) O padrão chain of responsibility é responsável por manter a independência entre os 
objetos receptor e solicitante na orientação a objetos. 
b) O padrão flyweight é utilizado quando é desejável que uma interface (abstração) possa 
variar independentemente de suas implementações. 
c) Os padrões GoF estão divididos nas categorias projetos de criação, projetos estruturais e 
projetos de transição. 
d) Os padrões abstract factory e singleton fazem parte da categoria projetos estruturais. 
 
O diagrama abaixo ilustra um dos padrões de projeto propostos pela Gang of Four. 
 
47) Esse padrão de projeto denomina-se 
a) Factory method. 
b) Abstract factory. 
c) Template method. 
d) Prototype. 
e) Builder. 
 
48) Sobre o padrão de projeto Composite, analise as afirmativas abaixo: 
i) Define hierarquias de classe que consistem de objetos primitivos e objetos compostos. 
ii) Útil para representar hierarquias partes-todo de objetos. 
iii) Torna mais fácil acrescentar novas espécies de componentes. 
Está CORRETO o que se afirma em 
a) I, apenas. 
b) II, apenas. 
c) I e II, apenas. 
d) I e III, apenas. 
e) I, II e III. 
 
 
49) Sobre padrões de projeto, analise as afirmativas abaixo: 
i) É uma descrição de um problema e o cerne de sua solução, de forma que tal solução 
possa ser adaptada para resolver novos problemas. 
ii) Lidam com relacionamentos entre objetos que podem ser mudados, apenas, em tempo 
de compilação. 
iii) Um antipadrão tem como um de seus propósitos descrever uma solução ruim para um 
problema que resultou em uma situação ruim. 
Está CORRETO o que se afirma, apenas, em 
a) I. 
b) II. 
c) III. 
d) I e III. 
e) I e II. 
 
 
50) Em aplicações para web orientadas a objeto, há um design pattern muito utilizado, 
(relacionado à arquitetura de sistemas) que possui um componente que: 
− Define o comportamento da aplicação. 
− Mapeia ações do usuário para classes que cuidam do acesso aos dados. 
− Seleciona páginas web para entregar resultados vindos das classes de acesso aos dados. 
O componente citado no texto acima é o 
a) Business. 
b) Controller. 
c) Persistence. 
d) Middle. 
e) Core. 
 
 
51) Considere que é necessário fazer um programa que vá funcionar em várias plataformas, como 
Windows, Linux, Mac OS etc. O programa fará uso de diversas abstrações de janelas gráficas, 
por exemplo, janela de diálogo, janela de aviso, janela de erro etc. Um Analista sugeriu o uso 
de um padrão de projeto GoF estrutural que fornece um nível de abstração maior que o 
Adapter, pois são separadas as implementações e as abstrações, permitindo que cada uma 
varie independentemente. 
O padrão sugerido pelo Analista é o 
a) Bridge e as implementações seriam as classes de janela das plataformas. 
b) Prototype, pois especifica os tipos de plataformas a serem criadas usando uma instância 
protótipo e cria novas interfaces pela cópia desse protótipo. 
c) MVC, de forma que a camada Model fique responsável por acionar as janelas, a camada 
Controller exiba os dados do Model ao usuário e a camada View armazene as classes que 
fazem a comunicação com o Banco de Dados. 
d) Visitor e as interfaces seriam executadas nos elementos de cada plataforma. 
e) State, que permite a uma plataforma alterar o comportamento de sua interface 
 
52) Suponha que em uma organização existe um conjunto de cargos e para cada cargo existem 
regras de cálculo da taxa de produtividade, cujo valor é determinado por uma porcentagem do 
salário base do funcionário. Este valor é acrescido ao salário do funcionário como um bônus. 
Um desenvolvedor deve criar uma solução que utilize um design pattern (padrão de projeto) 
cuja intenção é: “definir uma família de algoritmos, encapsular cada uma delas e torná-las 
intercambiáveis. O padrão de projeto permite que o algoritmo varie independentemente dos 
clientes que o utilizam”. Ou seja, o padrão sugere que algoritmos parecidos (métodos de 
cálculo da taxa de produtividade) sejam separados de quem os utiliza (funcionário). O padrão, 
além de encapsular os algoritmos da mesma família, também permite a reutilização do código. 
Nesta situação, caso a regra para cálculo da taxa de produtividade de dois tipos de 
funcionários, como Desenvolvedor e DBA, seja a mesma, não é necessário escrever código 
extra. Caso seja necessário incluir um novo cargo, basta implementar sua estratégia de 
cálculo da taxa ou reutilizar outra similar. Nenhuma outra parte do código precisa ser alterada. 
O design pattern mencionado na situação apresentada é 
a) Abstract Method. 
b) Builder. 
c) Prototype. 
d) Strategy. 
e) Singleton. 
 
53) Com relação ao tema Padrões de Projeto, conforme descritos por Gamma et alli, sobre o 
padrão Prototype, analise as afirmativas a seguir. 
i) Apresenta como benefícios adicionais a adição e a remoção de produtos em tempo de 
execução. 
ii) Apresenta como benefícios adicionais a especificação de novos objetos pela variação 
de seus valores e/ou de sua estrutura. 
iii) Apresenta como benefícios adicionais a redução da necessidade de criação de 
subclasses. 
Assinale: 
a) se somente a afirmativa I estiver correta. 
b) se somente a afirmativa II estiver correta. 
c) sesomente a afirmativa III estiver correta. 
d) se somente as afirmativas I e II estiverem corretas. 
e) se todas as afirmativas estiverem corretas. 
 
54) Nos padrões GoF, o padrão Builder é constituído, dentre os seus elementos, do “builder” e 
“concrete builder”. A diferença entre eles, respectivamente, é dada por qual alternativa? 
a) O primeiro especifica uma interface para um construtor de partes do objeto-produto, 
enquanto que o segundo constrói um objeto utilizando a interface do builder. 
b) O primeiro constrói um objeto utilizando a interface do concrete builder, enquanto que o 
segundo especifica uma interface para um construtor de partes do objeto-produto. 
c) O primeiro especifica uma interface para um construtor de partes do objeto-produto, 
enquanto que o segundo define uma implementação da interface builder além de manter a 
representação que cria e fornece a interface para recuperação do produto. 
d) O primeiro representa o objeto complexo acabado de construir e inclui classes que definem 
as partes constituintes, enquanto que o segundo especifica uma interface para um 
construtor de partes do objeto-produto. 
e) O primeiro define uma implementação da interface builder além de manter a representação 
que cria e fornece a interface para recuperação do produto, enquanto que o segundo 
representa o objeto complexo acabado de construir e inclui classes que definem as partes 
constituintes. 
 
55) O Design Patterns tem o objetivo de escrever uma solução geral e reutilizável para o 
desenvolvimento de sistemas de software orientados a objetos. Um dos padrões é o “GoF” ( 
Gang of Four ). Sabendo disso, assinale a alternativa que apresenta as famílias do GoF. 
a) Padrões de Visão, Padrões Estruturais, Padrões de Controle. 
b) Padrões de Visão, Padrões de Refactoring, Padrões de Controle. 
c) Padrões de Criação, Padrões de Refactoring, Padrões Comportamentais. 
d) Padrões de Criação, Padrões Estruturais, Padrões Comportamentais. 
e) Padrões de Criação, Padrões Estruturais, Padrões de Controle. 
 
56) A técnica de adaptação de um componente de software que encapsula o componente original 
e atual como filtro para requisições recebidas, determinando o comportamento do componente 
como desejado, é denominada 
a) proxy. 
b) wrapping. 
c) alteração de código. 
d) caixa-branca. 
e) herança. 
 
57) Padrões de projeto nomeiam, explicam e avaliam um aspecto de projeto importante e 
recorrente em sistemas orientados a objetos. 
Avalie as características atribuídas a um padrão de projeto. 
i) Usado quando uma classe é usuária de uma certa hierarquia/ família de algoritmos, 
como um algoritmo de busca ou ordenação. 
ii) Esse padrão define uma família de algoritmos, encapsula cada um deles e os torna 
intercambiáveis. 
iii) Como existem diversos algoritmos em uma mesma família, não é desejável que se 
codifique todos eles em uma mesma classe. 
iv) Permite que um algoritmo varie, independentemente dos clientes que o utilizam. 
v) Fornece uma maneira de configurar uma classe com um dentre muitos 
comportamentos. 
vi) Pode ser usado para evitar a exposição das estruturas de dados específicas de um 
algoritmo, que se deseja ocultar. 
Essas características são do padrão de projeto 
a) Strategy. 
b) Adapter. 
c) Decorator. 
d) Abstract Factory. 
e) Template Method. 
 
58) Os padrões arquiteturais descrevem a arquitetura, explicam quando elas podem ser usadas e 
discutem suas vantagens e desvantagens. Associe as colunas, relacionando os padrões 
arquiteturais aos cenários em que são geralmente utilizados. 
Padrões 
(1) Client-server 
(2) Pipe and filter 
(3) Layers 
(4) Model-ViewController 
(5) Repository 
Cenários 
( ) Quando há necessidade de manter uma gerência centralizada de todos os dados, de 
modo que este seja acessível a todos os componentes do sistema, possibilitando uma 
interação indireta entre eles. 
( ) Em aplicações de processamento de dados, em que as entradas são processadas em 
etapas separadas, nas quais os dados fluem de um componente para outro para 
processamento. 
( ) Quando há possibilidade de incorporar novos requisitos não funcionais, como distribuição, 
segurança, persistência, entre outros, de modo a minimizar modificações no restante do 
sistema em razão da integração desse novo requisito. 
( ) Quando há necessidade de que os dados sejam mantidos de maneira independente de 
sua apresentação, de modo que possam existir diversas maneiras de visualizar e interagir com 
os dados. 
( ) Quando os dados compartilhados precisam ser acessados a partir de uma série de locais, 
podendo ser usados, também, quando a carga em um sistema é variável. 
A sequência correta dessa associação é 
a) 1, 3, 4, 2, 5. 
b) 2, 4, 1, 5, 3. 
c) 3, 1, 2, 5, 4. 
d) 4, 5, 3, 1, 2. 
e) 5, 2, 3, 4, 1. 
 
59) A respeito de padrões de projeto, existem os padrões que descrevem maneiras comuns de 
organizar classes e objetos em um sistema e há aqueles que fornecem estratégias testadas 
para modelar a maneira como os objetos colaboram entre si em um sistema. Está-se falando, 
respectivamente, dos padrões de projeto 
a) criacionais e arquitetônicos. 
b) estruturais e de concorrência. 
c) organizacionais e comportamentais. 
d) criacionais e organizacionais. 
e) estruturais e comportamentais. 
 
60) Assinale a opção que apresenta SOMENTE padrões de projeto criacionais. 
a) Prototype e Singleton 
b) Proxy e Singleton 
c) Command e Iterator 
d) Factory Method e Adapter 
e) Template Method e Abstract Factory 
 
61) No desenvolvimento de uma API orientada a objetos, é comum reunir todas as suas 
funcionalidades em uma única classe, simplificando o acesso. Esta prática pode ser favorecida 
através da implementação do padrão de projeto. 
a) Proxy. 
b) Decorator. 
c) Singleton. 
d) Façade. 
e) Strategy. 
 
62) Na literatura de engenharia de software, além dos padrões GRASP, é comum classificar os 
padrões de projeto em 3 tipos: padrões de criação, padrões estruturais e padrões 
a) comportamentais. 
b) de testes. 
c) de implantação. 
d) de análise. 
e) de visualização. 
 
63) O padrão de projeto 'Command Processor' 
a) suporta tolerância a falhas, computação paralela e precisão computacional. 
b) ajuda a gerenciar todas as visões que um sistema de software provê. 
c) faz com que clientes de um componente se comuniquem com um representante em vez do 
próprio componente. 
d) provê uma comunicação entre processos transparente para sistemas de software com um 
modelo de interação ponto-a-ponto. 
e) separa a requisição por um serviço de sua execução. 
 
64) Qual dos padrões arquiteturais abaixo é indicado para a estruturação de sistemas de software 
distribuído com componentes dissociados que interajam por invocação remota de serviços? 
a) Broker 
b) Microkernel 
c) Model-View-Controller 
d) Blackboard 
e) Reflection 
 
65) Os três grupos distintos em que é organizado o padrão GoF são, assinale a alternativa correta: 
a) Criacionais, estruturais e comportamentais. 
b) Metodo, Classe e Mensagens. 
c) Classe, objeto e método. 
d) Comportamentais, Estado e Classe. 
 
66) Assinale a alternativa que define corretamente o conceito de Design Patterns: 
a) “Uma solução para um problema dentro de um 
contexto”.<http://www.devmedia.com.br/design-patterns-introducao-parte-1/16780> acesso 
em 23 de janeiro de 2017. 
b) “Um procedimento padrão para resolver problemas anteriormente desconhecidos dentro de 
um contexto genérico” <http://www.devmedia.com.br/design-patterns-introducao-parte-
1/16780> acesso em 23 de janeiro de 2017. 
c) “Uma prática não estruturada para solução de problemas dentro de um determinado 
contexto” <http://www.devmedia.com.br/design-patterns-introducao-parte-1/16780> acesso 
em 23 de janeiro de 2017. 
d) “Uma solução para um problema independentemente de um contexto” 
<http://www.devmedia.com.br/design-patterns-introducao-parte-1/16780> acesso em 23 de 
janeiro de 2017. 
 
67) Assinale a alternativa correta: 
a) SOLID é um acróstico e, cada letra está relacionadaa um princípio para programação e 
design orientado a objetos de autoria de Robert C. Martin. O Acrostico é formado pela 
inicial de Sistema, Objeto, Lógica, Informação e, Disign. 
b) SOLID é um acróstico e, cada letra está relacionada a um princípio para programação e 
design orientado a objetos de autoria de Robert C. Martin. 
c) SOLID é um acróstico formado pelas iniciais de SPR, OCP, LSP, ISP e DIP. É um conjunto 
consistente de princípios para modelagem matemática e computacional de sólidos 
tridimensionais. A modelagem sólida distinguese das áreas relacionadas de modelagem 
geométrica e computação gráfica por sua ênfase na fidelidade física. 
d) Em programação Orientada a Objetos É um conjunto consistente de princípios para 
modelagem matemática e computacional de sólidos tridimensionais. A modelagem sólida 
distingue-se das áreas relacionadas de modelagem geométrica e computação gráfica por 
sua ênfase na fidelidade física. 
 
68) A adoção de padrões de projeto proporciona uma reutilização estratégica durante o 
desenvolvimento de software, uma vez que promove o reuso de soluções previamente 
validadas e notadamente bem conhecidas (reuso de rationale). A figura apresenta um 
diagrama de classes que modela o controlador responsável por controlar o nível de dificuldade 
de um jogo eletrônico. Vale salientar que o nível de dificuldade pode ser ajustado em tempo de 
execução, a partir do perfil de cada jogador. 
 
 
 
Assinale a alternativa que representa o padrão de projetos que foi utilizado no exemplo 
apresentado na figura. 
a) Observer, uma vez que o controlador precisa monitorar os níveis de dificuldade. 
b) State, uma vez que este padrão possui o propósito de facilitar mudanças dinâmicas na 
execução dos métodos 
c) Composite, pois os diversos níveis de dificuldade estão representados através de uma 
hierarquia bem definida. 
d) Chain of Responsability, uma vez que não se sabe a priori qual o nível de dificuldade que 
será utilizado, variando no decorrer da execução. 
e) Command, uma vez que cada nível de dificuldade representa um comando complementar 
do jogo, representando, assim, diferentes formas de acionar o jogo. 
 
69) O padrão de projeto criado por John Goshmann MVVM, visa estabelecer uma clara separação 
de responsabilidades e tonar mais fácil a manutenção de um aplicativo. Assinale a alternativa 
correta referente a responsabilidade da ViewModel: 
a) Encapsula a lógica de negócio. 
b) É responsável por toda a lógica de validação. 
c) Apresenta os resultados do aplicativo. 
d) Disponibiliza para a View uma lógica de apresentação 
 
70) O padrão GoF apresenta três grupos. Indique a alternativa cujo termo NÃO pertence ao GoF: 
a) Comportamentais. 
b) Operacionais. 
c) Estruturais. 
d) Criacionais. 
 
71) Sobre os padrões de projeto para distribuição de responsabilidades, GRASP (General 
Responsability Assignment Software Patterns), analise as afirmativas. 
i) Polimorfismo (Polymorphism) – Problema: Como tratar alternativas com base em tipo? 
Solução: Quando alternativas ou comportamentos relacionados variam segundo o tipo 
(classe), atribua a responsabilidade pelo comportamento aos tipos para os quais o 
comportamento varia, usando operações polimórficas. 
ii) Especialista de Informação (Information Expert) – Problema: qual é o princípio geral de 
atribuição de responsabilidade a objetos? Solução: Atribua a responsabilidade ao 
especialista na informação, à classe que tem a informação necessária para satisfazer a 
responsabilidade. 
iii) Controlador (Controller) – Problema: qual é o primeiro objeto, além da camada de IU 
(interface de usuário), que recebe e coordena uma operação do sistema? Solução: 
Atribua a responsabilidade a uma classe que represente uma das seguintes escolhas: 
1) o sistema global, um objeto raiz ou um dispositivo dentro do qual o software está 
sendo processado; 2) um cenário de um caso de uso dentro do qual ocorre o evento do 
sistema. 
Está correto o que se afirma em 
a) I e III, apenas. 
b) I, II e III. 
c) II e III, apenas. 
d) I e II, apenas. 
 
72) Os Padrões de Projetos em Orientação a Objeto são arquiteturas utilizadas para desenvolver 
softwares orientados a objetos flexíveis e sustentáveis assim reduzindo sua complexidade. O 
modelo Singleton é utilizado para 
a) garantir que o objeto tenha apenas uma instância. 
b) remover um objeto da memória. 
c) instanciar o objeto quantas vezes for necessário. 
d) garantir a associação entre objetos. 
e) transformar o objeto em um método. 
 
Sobre padrões de projetos orientados a objetos (Design Pattern), analise os diagramas abaixo. 
 
73) Assinale a alternativa que apresenta o padrão de projeto correspondente aos diagramas. 
a) Strategy 
b) Composite 
c) Abstract Factory 
d) Adapter 
 
 
74) Observe as afirmativas abaixo: 
i) Com frequência, equipes de desenvolvimento de software escrevem classes que 
proveem funcionalidades similares às de outras classes já existentes. Esse padrão se 
aplica a qualquer contexto em que se deseja implementar funcionalidades já 
implementadas em outra classe, mas com interface diferente da classe já 
implementada. Esse padrão define uma nova classe de maneira que ela contenha uma 
instância da classe velha como um atributo privado, e implemente cada método da 
nova classe usando métodos da classe antiga. 
ii) Fornece uma interface unificada para um conjunto de interfaces em um subsistema. 
Define uma interface de nível mais alto que torna o subsistema mais fácil de ser usado. 
iii) Define o esqueleto de um algoritmo em uma operação, postergando alguns passos 
para as subclasses. Permite que subclasses redefinam certos passos de um algoritmo 
sem mudar a estrutura do mesmo. Esse padrão pode ser usado para implementar as 
partes invariantes do algoritmo uma só vez e deixar para as subclasses a 
implementação do comportamento que pode variar. 
iv) Evita o acoplamento do remetente de uma solicitação ao seu receptor ao dar a mais de 
um objeto a oportunidade de tratar a solicitação. Encadeia os objetos receptores, 
passando a solicitação ao longo da cadeia até que um objeto a trate. Esse padrão é 
utilizado quando mais de um objeto pode tratar uma solicitação e o objeto que a tratará 
não é conhecido a priori. O objeto que trata a solicitação é escolhido automaticamente. 
v) Você começou a trabalhar em um projeto que utiliza tecnologia Java RMI. Nesse 
projeto, é implementado um padrão de projeto que provê um ponto através do qual um 
objeto controla o acesso a outro. No projeto em questão, um objeto remoto que contém 
a implementação real é acessado através de um outro objeto local, de forma que o 
objeto local controla o acesso ao remoto. Para isso, ambos possuem a mesma 
interface. 
As afirmativas acima descrevem, respectivamente, os seguintes padrões de projeto: 
a) Adapter, Facade, Template Method, Chain of Responsibility e Proxy. 
b) Facade, Adapter Template Method, Chain of Responsibility e Decorator. 
c) Adapter, Facade, Decorator, Command e Adapter. 
d) Adapter, Facade, Template Method, Command e Interpreter. 
e) Memento, Strategy, Chain of Responsibility, Template Method e Memento. 
 
 
75) Segundo Erick Gamma, com relação às consequências do uso do padrão de projeto Bridge, 
analise as afirmativas a seguir. 
i) Desacopla interface e implementação, permitindo que a implementação possa ser 
configurada em tempo de compilação, dessa forma o cliente não é afetado por uma 
eventual troca de implementação. 
ii) Melhora a extensibilidade, pois permite que a abstração e a implementação se 
expandam em hierarquias que são independentes uma da outra. 
iii) A estruturação em camadas é dificultada quando se estende a hierarquia da 
implementação sem que a da abstração a acompanhe. 
Assinale: 
a) se somente a afirmativa I estiver correta. 
b) se somente a afirmativa II estiver correta. 
c) se somente a afirmativa III estiver correta. 
d) se somente as afirmativas I e II estiverem corretas. 
e) se todas as afirmativas estiverem corretas.76) Considerando a descrição dos Padrões de Projeto Comportamentais, analise as afirmativas a 
seguir. 
i) Aplicados a classes, usam delegação para distribuir comportamento entre elas. 
ii) Aplicados a objetos, usam herança ao invés de composição de objetos. 
iii) Estão relacionados com algoritmos e atribuição de responsabilidades entre os objetos. 
Assinale: 
a) se somente a afirmativa I estiver correta. 
b) se somente a afirmativa II estiver correta. 
c) se somente a afirmativa III estiver correta. 
d) se somente as afirmativas I e II estiverem corretas. 
e) se todas as afirmativas estiverem corretas. 
 
77) Os Padrões de Projeto de software são organizados em três famílias conforme a “Gangue dos 
Quatro” (Gang of Four). Dos “Padrões de Criação” abaixo, identifique qual deles não pertence 
a essa família especificamente: 
(1) Abstract Factory 
(2) Builder 
(3) Factory Method 
(4) Prototype 
(5) Proxy 
a) somente o 1 não pertence a essa família especificamente 
b) somente o 2 não pertence a essa família especificamente 
c) somente o 3 não pertence a essa família especificamente 
d) somente o 4 não pertence a essa família especificamente 
e) somente o 5 não pertence a essa família especificamente 
 
78) Na hierarquia dos componentes visuais da biblioteca Java AWT (do inglês, Abstract Window 
Toolkit), há containers e componentes. Containers, tais como os representados pelas classes 
Frame, Panel, Dialog e Applet agregam outros componentes, tais como os representados 
pelas classes Button e Label. Um container pode também conter sub-containers. Logo, um 
container pode conter containers ou componentes.Oracle, 2016. 
Disponível em: <http://docs.oracle.com/javase/8/docs/technotes/guides/awt/ >. Acesso em: 30 jul. 2016. 
 
Na figura, é ilustrado, de forma resumida, o diagrama de classes dos componentes visuais 
AWT. Qual o padrão de projeto que representa a estrutura de relacionamento entre as 
classes? 
a) Strategy. 
b) Observer. 
c) Decorator. 
d) Composite. 
e) Chain of Responsability. 
 
79) Considere os seguintes requisitos funcionais de um software de frente de caixa de uma 
sorveteria: 
i) ao selecionar um tipo qualquer de sorvete, pode-se adicionar vários condimentos a 
esse sorvete (tais como coberturas de diferentes sabores, granulados etc.) e o sistema 
deve calcular o valor total (sorvete + condimentos) dinamicamente ao fechar o pedido; 
ii) ao fechar o pedido, o sistema deve permitir adaptar o tipo de pagamento (cartão de 
crédito ou débito com desconto); 
iii) ao concluir o pedido, o sistema deve permitir que o valor total e a descrição do pedido 
sejam enviados a outros objetos (ou módulos) do sistema que estejam interessados 
nesses dados. 
Com base nos requisitos funcionais detalhados acima, qual dos padrões de projetos abaixo 
são adequados para resolver cada requisito funcional, respectivamente? 
a) Decorator, Adapter e Observer. 
b) Decorator, Strategy e Observer. 
c) Composite, Adapter e Observer. 
d) Composite, Strategy e Command. 
e) Composite, Singleton e Command. 
 
 
80) A respeito de padrões de projeto (design pattern), é CORRETO afirmar que 
a) o padrão abstract factory é utilizado quando um sistema for independente da maneira 
como seus produtos são criados, compostos ou representados 
b) o padrão template method é utilizado com o intuito de definir uma interface que tem o 
objetivo de criar um objeto, embora deixe as subclasses decidirem que classe deve ser 
instanciada 
c) visitor, decorator e builder são exemplos de padrões de projeto comportamentais. 
d) prototype, singleton e bridge são exemplos de padrões de projeto estruturais 
e) o padrão observer é do tipo estrutural e define a estrutura de um algoritmo em uma 
operação, bem como passos para as subclasses. 
 
 
81) Um desenvolvedor precisa utilizar um padrão de projeto para interceptar e manipular 
requisições HTTP de entrada de usuários ao sistema web, e respostas de saída através de 
filtros de pré-processamento e pós-processamento. Além disso, precisa utilizar outro padrão 
de projeto capaz de separar as regras de negócio da aplicação das regras de acesso ao 
banco de dados, permitindo assim centralizar em classes específicas, as operações de 
conexão ao banco de dados e realização de operações SQL. Os padrões de projeto que o 
desenvolvedor terá que utilizar são 
a) Front Controller e Data Transfer Object. 
b) Application Filter e Data Session Façade 
c) Intercepting Filter e Data Access Object. 
d) Controller Helper e Data Manager Object. 
e) Application Controller e Data Persistent Object. 
 
 
82) A Engenharia de Software define padrões na construção de projetos, contribuindo para a 
melhoria de qualidade e confiabilidade, permite o reuso de componentes e a redução de 
custos e prazos. Sobre padrões de sistemas, assinale a afirmativa correta. 
a) No desenvolvimento de softwares, o reuso de componentes, objetos, funções e bibliotecas 
só se tornaram viáveis com a implantação de padrões e da orientação a objeto 
b) A customização de sistemas é uma das formas mais comuns de reuso de sistemas 
baseados em softwares pela adequação às características da organização. 
c) Os padrões de sistemas não estão relacionados às metodologias de modelagem, 
documentação e às tecnologias, apenas ao processo de codificação de programas. 
d) Design patterns definem elementos essenciais para a composição de um padrão que se 
aplica apenas à herança e polimorfismo em orientação a objetos. 
 
83) Com base nos padrões de projeto de software, analise as afirmativas. 
i) I - O padrão GoF (Gang of Four) é dividido em quatro grupos: padrão de criação, 
padrão de estrutura, padrão de contexto e padrão de comportamento. 
ii) II - O padrão Singleton garante que apenas uma única instância de uma determinada 
classe seja instanciada durante a execução. 
iii) III - O padrão Iterator faz com que os acessos aos elementos de uma coleção de dados 
sejam realizados de forma sequencial. 
Está correto o que se afirma em 
a) I e II, apenas 
b) III, apenas 
c) II e III, apenas. 
d) I, II e III. 
 
84) O catálogo denominado Padrões GoF (‘Gang of Four’) define soluções reutilizáveis para 
problemas frequentes em projetos de sistemas de software. 
Essas soluções estão organizadas em três famílias conforme o propósito de cada solução. 
Os padrões de projetos denominados Interpreter, Prototype e Flyweight que fazem parte 
desse catálogo, pertencem, respectivamente, às seguintes famílias: 
a) padrão comportamental, padrão de criação e padrão estrutural. 
b) padrão estrutural, padrão comportamental e padrão de criação. 
c) padrão comportamental, padrão estrutural e padrão de criação. 
d) padrão estrutural, padrão de criação e padrão comportamental. 
e) padrão de criação, padrão comportamental e padrão estrutural. 
 
85) “Representa uma operação a ser executada sobre os elementos da estrutura de um objeto. 
Permite que se defina uma nova operação sem mudar as classes dos elementos sobre os 
quais opera.” Trata‐se do padrão de projeto 
a) Visitor. 
b) Proxy 
c) Decorator. 
d) Memento. 
e) Factory method. 
 
86) Um padrão de projeto nomeia, abstrai e identifica os aspectos‐chave de uma estrutura de 
projeto comum para torná‐lo à criação de um projeto orientado a objeto reutilizável. Os 
padrões de projeto podem ser: estruturais, de criação e comportamentais. Assinale, a seguir, 
dois padrões estruturais. 
a) State / Builder. 
b) Bridge / Decorator. 
c) Iterator / Mediator. 
d) Strategy / Prototype. 
e) Command / Interpreter. 
 
87) No contexto de padrões de projeto de software orientado a objetos, são padrões estruturais: 
a) Builder e Singleton. 
b) Adapter e Bridge. 
c) Interpreter e Iterator 
d) Observer e Mediator. 
e) Builder e Prototype. 
 
88) O sistema de registro de ponto da CASAN está passando por melhorias e será necessário 
usar uma biblioteca externa que fornece outras classes e métodos para registrar o funcionário. 
A equipe de desenvolvimento decidiu, então, criar uma nova classe com um métodode 
registro do funcionário com a assinatura idêntica ao método antigo. Esse método encapsulará 
a chamada ao método da biblioteca externa, reduzindo assim o impacto da alteração no 
sistema. Qual dos padrões de projetos a seguir se enquadra nesse tipo de solução? 
a) Observer. 
b) Prototype. 
c) Decorator. 
d) Singleton. 
e) Adapter. 
 
89) Erich Hamma, Richard Helm, Ralph Johson e John Vlissdes, mais conhecidos como “Gang of 
Four”, coletaram originalmente 23 Design Pattems (Padrões de Projeto) e organizaram em 3 
grupos denominados: 
Assinale a alternativa correta. 
a) Startup Standards (Padrões de Inicialização) - Intermediate Patterns (Padrões 
Intermediários) - Finishing Standards (Padrões de Fiinalização). 
b) Interaction patterns (Padrões de Interação) - Beta Standards (Padrões Beta) - Finishing 
Standards (Padrões de Fiinalização). 
c) Creational Patterns (Padrões de Criação) - Structural Patterns (Padrões Estruturais) - 
Behavioral Patterns (Padrões Comportamentais). 
d) Users Patterns (Padrões de Usuários) - Creational Patterns (Padrões de Criação) - 
Interaction patterns (Padrões de Interação). 
e) Alpha Standards (Padrões Alfa) - Beta Standards (Padrões Beta) - Patterns Gamma 
(Padrões Gama). 
 
90) Em projetos orientados a objetos (OO) em geral aplica-se padrões definidos para serem 
utilizados no desenvolvimento, como o GRASP, por exemplo. Esses padrões ou “patterns”, 
como são conhecidos entre os desenvolvedores e projetistas de sistemas, são definidos pela 
OO como 
a) o treinamento da equipe dentro dos padrões acordados com o cliente. 
b) a descrição de um problema e sua solução que pode ser aplicado a novos contextos. 
c) as especificações de reuso de código para a padronização das soluções do software. 
d) a documentação necessária para o entendimento do requisito e do projeto de software. 
e) os artefatos necessários para a construção de um software que favoreça a manutenção. 
 
91) Dentre os tipos de Padrões de Projeto (Design Patterns) o que se caracteriza por definir uma 
interface para a criação de um objeto e que permite que a subclasse decida qual classe 
instanciar é denominado 
a) Factory Method. 
b) Builder. 
c) Prototype. 
d) Abstract Factory. 
e) Composite. 
 
92) Definir o que é um padrão de projeto de maneira clara e objetiva tem sido o objetivo da 
comunidade de software, desde a década de 80. Assinale a alternativa que associa 
corretamente as definições a seguir com os padrões a que pertencem. 
i) Garantem que uma classe tenha somente uma instância e fornece somente um ponto 
de acesso à instância. 
ii) Define uma família de algoritmos, encapsula-os em objetos e torna-os intercambiáveis. 
Permite que se possam mudar os algoritmos independentemente de quem os está 
utilizando. 
a) I – Decorator; II – Façade 
b) I – Iterator; II – Proxy 
c) I – Proxy; II – Singleton 
d) I – Command; II – Strategy 
e) I – Singleton; II – Strategy 
 
93) O padrão de projetos MVC (Model-View-Controller) tem como objetivo separar lógica de 
negócios (Model), interface do usuário (View) e o fluxo da aplicação (Control). O padrão MVC 
usa em sua arquitetura diversos outros padrões de projeto para atingir seu objetivo. 
Em MVC, as classes do Model não devem conhecer nada sobre as camadas de interface que 
exibem suas informações. O padrão de projeto utilizado pelo padrão arquitetural MVC que é 
responsável por fazer com que o Model informe mudanças em seu estado para as interfaces, 
sem conhecê-las, é o: 
a) façade; 
b) observer; 
c) singleton; 
d) Factory Method; 
e) composite. 
 
94) Um Analista precisa construir uma aplicação que possui uma função da qual se conhece 
somente o algoritmo de execução, sendo que o trabalho de codificação para realização da 
operação desta função tem que ser postergado. Ele optou pelo uso do padrão de projeto 
comportamental 
a) Template Method, que permite implementar as partes invariantes de um algoritmo e deixar 
para subclasses a implementação da parte variante. 
b) Adapter, que cria classes reutilizáveis que cooperam com classes não relacionadas ou não 
previstas. 
c) Singleton, que possibilita o uso de uma instância estendida sem alterar o seu código. 
d) Abstract Factory, que permite criar uma biblioteca de classes de produtos e revelar 
somente suas interfaces, não suas implementações. 
e) Factory Method, que define uma interface para criar objetos, mas deixa que as subclasses 
decidam que classe instanciar. 
 
95) Os padrões de projeto 
a) podem deixar um sistema mais complexo ou degradar a sua performance. O seu uso 
indevido ou inadequado para um determinado contexto constitui-se em um anti pattern. 
b) sempre criam flexibilidade e variabilidade pela introdução de níveis adicionais de 
endereçamento indireto. Como melhoram o desempenho do sistema devem ser sempre 
aplicados. 
c) comportamentais abstraem ou adiam o processo de criação dos objetos, ajudando a tornar 
o sistema dependente de como seus objetos são criados, compostos e representados. 
d) estruturais se concentram nos algoritmos de herança entre os objetos. Eles não descrevem 
apenas padrões de objetos ou de classes, mas também os padrões de comunicação entre 
os objetos. 
e) de criação se preocupam com a forma como classes e objetos são compostos para formar 
estruturas maiores. Utilizam o polimorfismo para compor interfaces ou implementações. 
 
96) Segundo Gamma et al, em seu livro sobre Padrões de Projeto, o uso do padrão Memento 
apresenta as consequências listadas nas afirmativas a seguir. 
i) A adição e a remoção de produtos em tempo de execução. 
ii) A especificação de novos objetos pela variação de seus valores e/ou de sua estrutura. 
iii) A redução da necessidade de criação de subclasses. 
Assinale: 
a) se somente a afirmativa I estiver correta. 
b) se somente as afirmativas I e II estiverem corretas. 
c) se somente as afirmativas I e III estiverem corretas. 
d) se nenhuma das afirmativas estiver correta. 
e) se todas as afirmativas estiverem corretas. 
 
97) O padrão de projeto MVVM foi proposto por John Grossman para simplificar o 
desenvolvimento de aplicações baseadas nas tecnologias WPF e Windows Phone. O MVVM 
foi desenvolvido como uma especialização do padrão: 
a) Model-View-Controller; 
b) Mobile-Interator Model; 
c) Presentation Model; 
d) Singleton Model; 
e) Decorator Model. 
 
98) A empresa SOFTPRONTO foi contratada para desenvolver aplicativos de uma instituição 
financeira que possam ser executados em diferentes plataformas, como PC, celular e tablet. 
Para evitar a necessidade de criar diferentes soluções para cada plataforma, a empresa 
decidiu adotar um padrão de projeto que defina uma família de componentes para cada 
plataforma e uma implementação que os instancie de acordo com a plataforma-alvo na qual a 
aplicação estará sendo executada. O padrão adequado a essa implementação é: 
a) Prototype; 
b) Adapter; 
c) Template Method; 
d) Abstract Factory; 
e) Strategy. 
 
99) O singleton é um padrão de projeto usado em orientação a objetos que limita a instanciação 
de uma classe a um único objeto. Analise a seguinte implementação de um singleton em Java: 
 
Considere as três afirmações seguintes acerca da implementação mostrada: 
i) a declaração do construtor da classe poderia ser omitida sem prejuízo do requisito de 
unicidade da instância; 
ii) a declaração do construtor da classe é indispensável, dado o requisito de unicidade da 
instância, porém o modificador private poderia ser omitido; 
iii) a instância única será construída quer a classe Singleton seja referenciada na 
aplicação quer não. 
Assinale se: 
a) I, II e III são verdadeiras; 
b) I e III são verdadeiras, II é falsa; 
c) I, II e III são falsas; 
d) I e II são verdadeiras, III é falsa; 
e) II e III são verdadeiras, I é falsa. 
 
100) Considere a seguinte situação: Uma grande empresa possui uma rede de representação 
de seus produtos constituída por escritórios de venda em diversas cidades. Cada escritório 
possui um conjunto de vendedoresque vão até os varejistas oferecer os produtos. Varejistas 
podem estar em áreas populosas, como supermercados, ou em áreas remotas, como 
comércios de bairros rurais. Ao chegar no varejista, o vendedor utiliza um sistema fornecido 
pela empresa para registrar os pedidos de produtos. 
Na situação descrita, o objetivo é registrar os pedidos na base de dados da central de 
distribuição da empresa. Porém, por problemas de comunicação com a central, o computador 
portátil do varejista pode não conseguir conectar com a base central para registrar os pedidos. 
Se isso ocorrer, o sistema deve tentar salvá-los na base de dados do escritório. Quando a 
base do escritório também não estiver acessível, os pedidos deverão ser salvos na base de 
dados local, no próprio computador portátil do vendedor. 
Para estruturar a solução para o problema da empresa, o Analista de Sistemas utilizou um 
padrão de projeto que tem a intenção de evitar o acoplamento do remetente de uma 
solicitação ao seu receptor, ao dar a mais de um objeto a oportunidade de tratar a solicitação e 
encadear os objetos receptores, passando a solicitação ao longo da cadeia até que um objeto 
a trate. O padrão de projeto utilizado é um dos padrões comportamentais da GoF (Gang of 
Four), denominado 
a) Adapter. 
b) Composite Method. 
c) Chain of Responsibility. 
d) Factor Method. 
e) Prototype.

Outros materiais