Buscar

Questões de Prova - Padrões de Projeto

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 14 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 14 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 14 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

Proposições certas em negrito.
Pegadinhas e observações em itálico e sublinhado.
Q: Os design patterns ...:
são projetos de arquitetura para um domínio específico de aplicação e sempre trazem 
componentes predefinidos que envolvem código de programação.
são de uso exclusivo em processos de desenvolvimento de soluções orientado a objetos, já 
que os objetos são a mais adequada abstração para o reúso.
podem ser modelados utilizando‐se a linguagem UML que fornece um meio eficiente de 
modelar padrões de projeto representando‐os como colaborações.
consistem em conjuntos de classes que um usuário instancia para utilizar seus métodos. Após 
a chamada ao método, o controle do fluxo da aplicação retorna para o usuário. 
são aplicações propriamente ditas, normalmente construídas pela integração de diversos 
frameworks.
Q: 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 instancias 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.
Q: Considere as afirmativas abaixo sobre o padrão Builder: 
I ‐ É utilizado na instanciação de objetos complexos.
II ‐ É visto como um construtor especializado, que irá executar e avaliar diferentes regras de 
negócio e demais particularidades relacionadas com a criação de um novo objeto. 
III ‐ A idéia é atribuir a responsabilidade de criação do objeto complexo a outra classe, esta 
classe irá armazenar todas as configurações e regras necessárias para a instanciação do novo 
objeto.
Q: Entre as vantagens do padrão Interpreter podem‐se citar: 
I ‐ facilidade para mudar e estender a gramática, pois, o padrão utiliza classes para 
representar as regras gramaticais. 
II ‐ Pode‐se usar herança para mudar ou estender a gramática, assim como expressões 
existentes podem ser modificadas incrementalmente e novas expressões podem ser criadas 
a partir das existentes; 
III‐ a implementação da gramática é mais fácil, pois, classes que definem os nós folhas da 
árvore tem implementações similares. Por outro lado, uma das desvantagens é que o padrão 
Interpreter define, ao menos, uma classe para cada regra da gramática, logo, gramáticas com 
muitas regras são difíceis de manter e administrar.
Q: Sobre padrões de projeto escolha a opção incorreta.
Cada padrão descreve um problema que ocorrem repetidas vezes em nosso ambiente e 
fornece o núcleo da solução para aquele problema, de tal maneira que se pode usar essa 
solução milhões de vezes sem nunca fazê‐la da mesma forma
Um padrão de projeto define uma estrutura que obrigatoriamente não poderá ser alterada 
pelo desenvolvedor
A diversidade de padrões disponíveis é bastante grande, pode‐se ter, por exemplo, padrões 
arquiteturais, padrões de análise, padrões de projeto e padrões de código.
Os padrões de projeto são descrições de objetos que se comunicam e classes que são 
customizadas para resolver um problema genérico de design em um contexto específico.
Padrões de projeto estão relacionados a diferentes níveis de abstração no desenvolvimento de 
aplicações orientadas a objetos, podendo aparecer ao longo de todo ciclo de análise e projeto 
de um sistema
Q: Além dos benefícios tradicionais relacionados com produtividade, redução do tempo de 
desenvolvimento e reaproveitamento de soluções passadas, a utilização de padrões de projeto 
pode contribuir ainda nos seguintes aspectos 
I ‐ É uma abordagem complementar, auxiliam os analistas e desenvolvedores a melhor 
utilizar as práticas tradicionais de análise e projeto orientado a objetos, tais como abstração, 
encapsulamento, herança, polimorfismo, entre outros. 
II ‐ Cada padrão descreve um conjunto de problemas e a solução é única não podendo ser 
alterado 
III ‐ Auxiliam programadores inexperientes a desenvolverem soluções mais elegantes, 
melhor documentadas, padronizadas e reutilizáveis. 
IV ‐ Muitos dos padrões de projeto desenvolvidos auxiliam no refatoramento da aplicação.
Q: Baixo acoplamento é um princípio‐chave na Orientação objetos. O que deve ser feito para 
garantir o baixo acoplamento na definição dos objetos/classe/subsistema/sistema.
Gabarito: Deve‐se manter os objetos/classe/subsistema/sistema o mais independente 
possível, ou seja, não possui conhecimento sobre o outro ou confia em outro.
[Pode‐se falar também da coesão. Classes coesas tendem a ser menos acopladas]
Q: Os métodos polimórficos utilizam os conceitos de overloading e overrinding. Apresente a 
diferença entre os dois conceitos.
Gabarito: O conceito OVERLOADING é a sobrecarga dos métodos: define vários métodos de 
mesmo nome com assinaturas diferentes.
O conceito OVERRIDING altera o comportamento do método na subclasse, mantendo a mesma 
assinatura, com funcionalidade diferente.
Q: Considere a definição: Visitor: Representar uma operação a ser realizada nos elementos de 
uma estrutura de objetos. Visitor permite que você defina uma nova operação sem alterar as 
classes dos elementos nos quais a operação atua (Gamma et al., 2000). Qual das alternativas é 
completamente verdadeira?
O principal objetivo do padrão acima é permitir que sejam adicionadas novas 
funcionalidades a classes previamente concebidas, sem que haja necessidade de alterar sua 
implementação.
A idéia principal do padrão acima é implementar diferentes algoritmos em uma hierarquia de 
classes, onde cada um deles pode ser substituído por outro, independente do cliente que o 
utiliza.
O principal objetivo do padrão acima é conservar as funcionalidades em não se permita 
adicionar novas, e obriga que haja necessidade de alterar sua implementação
O padrão de projeto acima deve ser utilizado não somente quando o comportamento de um 
objeto depende do seu estado, podendo ser alterado em tempo de execução, mas também 
quando a funcionalidade de um objeto possui condicionais grandes.
O padrão de projeto acima é indicado para ser utilizado quando uma abstração tem dois 
aspectos, um dependente do outro. Encapsular tais aspectos em objetos separados permite 
que variem e sejam reusados separadamente;
Q: Sobre o Polimorfismo considere a figura abaixo e selecione a reposta totalmente correta:
[Não precisa de figura, respostas idiotas e, de certa forma, erradas]
Define‐se uma estrutura de herança. Automaticamente fica definido uma estrutura de 
métodos. Isto é polimorfismo
Define‐se um método na classe PAI. Este método é copiado nas classes que herdam a classe 
PAI. Isto é polimorfismo.
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 correpondente. Isto é polimorfismo.
[Também é polimorfismo quando o método da classe pai está implementado e a classe que 
herda o método o sobrescreve (override), portanto esta definição é pífia]
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.
Define‐se vários métodos. Cada método deve ter uma estrutura IF...THEN...para cada situação. 
Isto é polimorfismo.
Q: O padrão Indireção tem como característica:
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.
é o primeiro objeto além da camada deinterface com o usuário que é responsável por receber 
ou tratar uma mensagem de operação do sistema.
Sugere atribuir um conjunto de responsabilidades altamente coesa 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.
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.
É um principio 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.
Q: Iterator :Fornecer uma maneira de acessar seqüencialmente os elementos de um objeto 
agregado sem expor sua implementação. (Gamma et al., 2000). Sobre este padrão de projetos 
podemos afirma com certeza:
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
tem uma grande facilidade de mudança de comportamento, pode‐se alterar seu 
funcionamento sem que seja necessário nenhuma mudança nas demais classes envolvidas, 
desde que envolvam coleções e matrizes.
É 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.
É bastante utilizado em programação de sistemas para gerenciar a comunicação entre dois ou 
mais objetos
Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes 
de implementação.
Q: Marque a alternativa que está relacionada ao padrão de projeto que é auxiliar a reduzir o 
impacto de modificações em uma aplicação.
State Acoplamento fraco Observador Especialista da informação Criador
Q: O padrão Adpater é bastante utilizado para compatibilizar classes implementas por 
programadores diferentes, ou desenvolvidas em momentos diferentes, ou ainda para unir 
classes com interfaces diferentes em uma estrututura hierarquica única, sem precisar 
implementar novamente todas as funcionalidades e interfaces da classe já existente, considere 
as afirmativas: 
I ‐ A idéia é criar uma nova classe (Adapter) com a interface padrão que se deseja para fazer 
a conexão com a classe já existente (Adaptee) com interface diferente da estrutura de 
classes que se pretende utilizar no sistema. 
II ‐ Além de reaproveitar totalmente a classe antiga sem precisar alterar o código e entender 
a complexa implementação realizada, mantém a uniformidade do seu projeto original. 
III ‐ Cria uma hierarquia de classes diferentes categorias de objetos sem relação de herança.
Q: Seguindo os princípios Especialista da Informação qual o critério deve ser adotado na 
escolha de uma classe para receber uma nova responsabilidade?
Gabarito: Deve‐se buscar a classe que conhece do contexto da nova responsabilidade através 
de seus atributos e métodos já definidos.
Q: Marque a alternativa que representa o padrão GRASP que está relacionada com a seguinte 
questão: A quem atribuir responsabilidades para evitar acoplamento direto entre objetos?
Indireção Invenção Pura Controlador Variações Protegidas Polimorfismo
Q: Marque a alternativa que está relacionada com o padrão GRASP utilizado para conectar a 
camada de interface com o usuário e a camada de negócios da aplicação?
Baixo acoplamento Esp. da informação Controlador Polimorfismo Coesão alta
Q: Command : Encapsula uma solicitação como um objeto, permitindo a parametrização de 
clientes com diferentes solicitações, o enfileiramento e o registro de solicitações e o suporte a 
operações que possam ser desfeitas. (Gamma et al., 2000). Sobre ele podemos afirmar com 
toda a certeza:
[Resposta da questão no próprio enunciado =D]
Este padrão de projeto oferece pouca flexibilidade na arquitetura do sistema, uma vez que não 
permite adição de novas funcionalidades
O objetivo do padrão de projeto Command é encapsular chamadas de métodos.
esta abordagem é que o objeto que está realizando a chamada do método precisa conhecer 
com detalhes sobre seu funcionamento.
Os métodos, nesta abordagem devem ser padronizados e hierarquizados de forma que a 
implementação trabalhe novos objetos.
Nesta abordagem o objeto que está realizando a chamada do método precisa conhecer com 
detalhes a implementação em relação asparente ao local, tempo e ao objeto que vai realizar 
uma determinada tarefa
Q: 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?
[Questão idiota. Sempre se busca esses princípios, com todos os padrões]
Controlador Indireção polimorfismo variações protegidas Invenção Pura
Q: Marque a alternativa que está relacionada ao padrão GRASP que está relacionada com a 
seguinte questão: como tratar alternativas com base no tipo?
Especialista da informação Polimorfismo Acoplamento fraco Observador State
Q: Considerando a classe de projetos GoF assinale a opção cujos padrões de projeto estão 
todos classificados como Estruturais:
singleton; bridge ; protype; decorator ; façade ; flyweight ; Proxy; 
adapter; bridge; composite; decorator ; façade ; flyweight; Proxy; 
adapter; bridge ; composite ; decorator ; façade ; flyweight ; singleton; 
singleton; bridge ; composite; decorator ; façade ; flyweight; Proxy; 
adapter; bridge ; protype; decorator ; façade ; flyweight ; singleton
[Revisando] 
Padrões de Criação [5]:  Abstract Factory, Builder, Factory Method, Prototype e Singleton.
Padrões Estruturais [7 / ABCDFFP]: Adapter,  Bridge, Composite, Decorator, Façade, Flyweight e 
Proxy 
Padrões Comportamentais [11]: Chain of Responsibility, Command, Interpreter, Iterator, 
Mediator, Memento, Observer, State, Strategy, Template Method e Visitor.
Q: Segundo a classificação de Design Patterns apresentada pela GoF, identifique com V os 
padrões comportamentais e com F, os demais.
Observer. Iterator. Façade. Composite.  Visitor.
Q: O autor Larman (2007) afirma que as responsabilidades estão relacionadas com as 
obrigações de um objeto, sendo divididas em dois tipos. Escolha dos dois tipos corretos nas 
afirmativas abaixo: 
I ‐ Fazer: fazer algo propriamente dito, como criar um objeto ou realizar um cálculo. Iniciar 
uma ação em outros objetos. Controlar e coordenar atividades em outros objetos. 
II ‐ Saber: ter conhecimento sobre dados privados encapsulados. Conhecer objetos 
relacionados. Ter conhecimento sobre funções que ele pode derivar ou calcular. 
III ‐ Calcular: Fazer um cálculo especifico ao criar um objeto desde que envolva métodos que 
necessitem de cálculo.
Q: 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 ...
As duas afirmações são falsas
   as duas afirmações são verdadeiras, e a segunda não justifica a primeira.
as duas afirmações são verdadeiras, e a segunda justifica a primeira.
a primeira afirmação é verdadeira, e a segunda é falsa.
a primeira afirmação é falsa, e a segunda é verdadeira.
Q: O padrão de projeto Singleton é um dos padrões mais conhecidos e extensivamente 
utilizados em programação orientada a objetos. Sobre ele podemos afirmar 
[Atenção para o modificador static que está escrito errado porém a proposição é considerada 
correta!]
I ‐ Está direcionado para as situações onde precisamos manter uma única instancia de uma 
classe durante toda a execução da aplicação. 
II ‐ A sua estrutura é bastante simples, existeapenas uma classe chamada Singleton, que 
define um método chamado Instance, responsável poder retornar aos clientes à única 
instancia da classe. 
III ¿ Na linguagem Java os modificadores states e private devem garantir uma mesma 
instância para todos os objetos criados e evitar acesso público;
Q: O projeto Orientado a objetos pressupõe a criação de modelos de domínio a partir dos 
requisitos identificados para entendimento do negócio e apresentação de uma solução. A 
esses modelos são acrescidas os aspectos físicos, como os métodos e a troca de mensagens 
entre eles. A questão é decidir a melhor forma de interação entre os métodos, ou seja, a 
atribuição da responsabilidade estabelecida para que se possa gerar um melhor resultado. 
Visando facilitar a construção de soluções são apresentados os padrões de projeto. Assinale 
dentre as alternativas a seguir a que NÃO define uma característica atribuída ao uso dos 
padrões.
É apresentado através de uma descrição contendo informações de identificação e registro, 
como: Nome, Problema, Sumário, Solução, Conseqüências e Padrões Relacionados.
Fornece orientação de aplicação em circunstâncias variáveis.
O nome do padrão é utilizado para agrupar ideias em um conceito.
É uma descrição nomeada de um problema e solução que pode ser aplicado em novos 
contextos.
São definidos por especialistas de problemas e servem para aplicação direta em qualquer 
contexto.
Q: O desenvolvimento de software é uma atividade que apresenta dificuldades, ligada ao 
entendimento do problema. Design Patterns surgiram na busca de soluções para as 
dificuldades, tornando‐se um mecanismo eficiente no compartilhamento de conhecimento 
entre os desenvolvedores. Gamma propõe um modo de categorização dos DESIGN PATTERNS, 
definindo famílias de padrões relacionados, descritos a seguir. 
I. Abrange a configuração e inicialização de objetos e classes. 
II. Lida com as interfaces e a implementação das classes e dos objetos. 
III. Lida com as interações dinâmicas entre grupos de classes e objetos. 
Essas famílias são denominadas, respectivamente,
Behavioral Patterns, Structural Patterns e Standard Patterns.
Structural Patterns, Standard Patterns e Creational Patterns.
Standard Patterns, Creational Patterns e Structural Patterns.
Creational Patterns, Structural Patterns e Behavioral Patterns.
Standard Patterns, Structural Patterns e Behavioral Patterns.
Q: 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 pelos 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.
FACADE.  BUILDER. SINGLETON. FACTORY METHOD. MEDIATOR.
Q: Dentre as alternativas abaixo identifique a que NÃO define uma situação em que deve ser 
utilizado o padrão Factory Method?
Quando o algoritmo de criação de um objeto deve ser independente das suas partes 
constituintes e da maneira como ele é "montado". [Nesta situação, utiliza‐se o Builder]
Quando classes delegam responsabilidade para uma entre várias subclasses de apoio.
Quando se quer localizar num ponto único a conhecimento de qual subclasse está sendo 
usada.
Quando uma classe quer que suas subclasses especifiquem os objetos criados.
Quando uma classe (o criador) não pode antecipar a classe dos objetos que deve criar.
Segundo Metsker, o padrão de projeto GoF _________________ é aplicado para substituir a 
geração de instâncias não‐inicializadas de uma classe, fornecendo novos objetos a partir de 
uma classe‐exemplo.
BUILDER. SINGLETON. FACTORY METHOD. MEDIATOR.  PROTOTYPE.
Q: Baseando‐se nas necessidades apresentadas do lado direito do quadro abaixo, relacione‐as 
ao padrão adequado a utilização e, em seguida marque a alternativa que corresponde a 
sequencia numerada correspondente.
4 ‐ 3 ‐ 1 – 2
Q: Na UML, o padrão Singleton (GoF) pode ser visto como na classe abaixo:
Sobre o padrão de projeto Singleton, 
I ‐ o número 1 no canto superior da classe pode ser utilizado opcionalmente para indicar que 
esta classe terá apenas uma única instância.
II ‐ para se implementar o padrão Singleton na classe acima, esta deverá possuir um método 
construtor ServicesFactory() privado.
III ‐ caso uma subclasse estenda a classe ServicesFactory através de herança, o método 
getInstance() deverá ser sobrescrito (override) para construir a subclasse. [Não pois não se 
sobrescreve método estático]
IV ‐ o método getInstance() deverá ser obrigatoriamente declarado como um método 
estático (static).
Q: Ao consultar informações a respeito dos padrões de projeto Adapter e Bridge, um Analista 
de Sistemas identificou uma afirmativa INCORRETA. Assinale‐a.
O foco do Adapter é a solução de incompatibilidades entre duas interfaces existentes.
O Bridge estabelece uma ponte entre uma abstração e suas possíveis implementações.
O Adapter é inferior ao Bridge porque não evita a replicação de código.
Ambos são padrões estruturais que possuem alguns atributos em comum.
Ambos promovem a flexibilidade ao fornecer um nível de endereçamento indireto para outro 
objeto.
Q: Relacione os padrões de projeto às suas indicações de uso. 
I ‐ Ponte  II ‐ Observador  III ‐ Decorador 
P ‐ Mostra como adicionar responsabilidades aos objetos dinamicamente. 
Q ‐ Separa a abstração de um objeto de sua implementação. 
R ‐ Define e mantém dependência entre objetos. 
S ‐ Define um objeto que encapsula como um conjunto de objetos que interagem.
Gabarito: I‐Q, II‐R, III‐P
Q: "Classes devem estar abertas para extensão e fechadas para modificação" é um princípio de 
projeto de modelos orientados a objetos. Tal princípio pode ser aplicado através do padrão de 
projeto
decorator. builder. singleton. flyweight. prototype.
Q: 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
Decorator. Observer. Prototype. Flyweight. Façade.
Q: considere a definição: Observer: Definir uma dependência um‐para‐muitos entre objetos 
para que quando um objeto mudar de estado, todos os seus dependentes sejam notificados e 
atualizados automaticamente. (Gamma et al., 2000). 
Qual das alternativas é completamente verdadeira?
[A assertiva correta parece mais com a definição de Visitor (Double Dispatch) do que de 
Observer, ou até mesmo com Bridge, no qual abstração e implementação variam de forma 
independente; mas...]
O padrão de projeto acima é indicado para ser utilizado quando uma abstração tem dois 
aspectos, um dependente do outro. Encapsular tais aspectos em objetos separados permite 
que variem e sejam reusados separadamente;
O padrão de projeto acima deve ser utilizado não somente quando o comportamento de um 
objeto depende do seu estado, podendo ser alterado em tempo de execução, mas também 
quando a funcionalidade de um objeto possui condicionais grandes.
O principal objetivo do padrão acima é conservar as funcionalidades em não se permita 
adicionar novas, E obriga que haja necessidade de alterar sua implementação
A idéia principal do padrão acima é implementar diferentes algoritmos em uma hierarquia de 
classes, onde cada um deles pode ser substituído por outro, independente do cliente que o 
utiliza.
O principal objetivo do padrão acima é permitir que sejam adicionadas novas funcionalidades a 
classes previamente concebidas, sem que haja necessidade dealterar sua implementação.
Q: As principais aplicabilidades do padrão command de projeto são: 
I) permitir fácil inclusão de novos comandos;
II) permitir tratamento de requisições concorrentes, manter histórico de execução de 
comandos;
III) suportar operações para desfazer comandos e;
IV) evitar o acoplamento direto entre classes e serviços.
Q: Marque a alternativa que está relacionada ao padrão de projeto que é responsável por 
selecionar quais responsabilidades devem estar em quais classes.
Observador Acoplamento fraco Criador  State Especialista da informação
Q: Considere a definição: State: Permitir a um objeto alterar o seu comportamento quando o 
seu estado interno mudar. O objeto parecerá ter mudado de classe (Gamma et al., 2000). Qual 
das alternativas é completamente verdadeira?
A idéia principal do padrão acima é implementar diferentes algoritmos em uma hierarquia de 
classes, onde cada um deles pode ser substituído por outro, independente do cliente que o 
utiliza.
O padrão de projeto acima deve ser utilizado não somente quando o comportamento de um 
objeto depende do seu estado, podendo ser alterado em tempo de execução, mas também 
quando a funcionalidade de um objeto possui condicionais grandes.
O principal objetivo do padrão acima é permitir que sejam adicionadas novas funcionalidades a 
classes previamente concebidas, sem que haja necessidade de alterar sua implementação.
O padrão de projeto acima é indicado para ser utilizado quando uma abstração tem dois 
aspectos, um dependente do outro. Encapsular tais aspectos em objetos separados permite 
que variem e sejam reusados separadamente;
O principal objetivo do padrão acima é conservar as funcionalidades em não se permita 
adicionar novas, E obriga que haja necessidade de alterar sua implementação
Q: (ESAF ‐ 2005) 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.
Q: Marque a alternativa que está relacionada com o padrão de projeto que pode ser utilizado 
para configurar uma classe com um dentre muitos comportamentos disponíveis.
[Note que o Visitor também adiciona funcionalidades, porém em tempo de execução; o State 
também o faz, porém de acordo com o estado interno]
Visitor Strategy Memento Observer State
Q: Os padrões de projetos, quando aplicados ao desenvolvimento de aplicações, fornecem 
meios de descrever soluções comuns para problemas comuns, resultando em redução de 
tempo gasto com o desenvolvimento e melhoria da qualidade da aplicação.  Analise: 
I. É o responsável pela especificação dos tipos de objetos a serem criados usando uma 
"instância" prototípica e pela criação de novos objetos copiando este protótipo. 
II. Define uma interface de nível mais alto que torna o subsistema mais fácil de usar e fornece 
uma interface única para um subsistema com diversas interfaces; compõe o grupo de padrões 
estruturais. 
III. Integrante do grupo de padrões comportamentais, ele provê uma forma de acessar 
sequencialmente os elementos de um agregado de objetos, sem expor a representação 
interna desse agregado. 
IV. As consequências do uso deste padrão é que o encapsulamento é mantido, já que objetos 
usam sua própria informação para cumprir responsabilidades; leva ao fraco acoplamento entre 
objetos e à alta coesão, uma vez que objetos fazem tudo que é relacionado à sua própria 
informação. 
As afirmações correspondem, respectivamente, aos padrões
I‐Protoype, II‐Facade, III‐Iterator, IV‐Expert (Especialista da Informação)
Q: O padrão Invenção Pura tem como característica:
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. 
[Indireção]
é 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. [Controller]
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. [Expert]
É um principio 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. [Variações 
protegidas]
Sugere atribuir um conjunto de responsabilidades altamente coesa 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.
Q: Selecione a opção totalmente correta da responsabilidade correta para o do padrão GRASP 
Criador:
Tem a seguinte responsabilidade de fazer, pois sua funcionalidade está relacionado com a 
resposta a seguinte pergunta: quem deve criar um objeto A.
O padrão de projeto está interessado no algoritmo de criação, e a determinar qual classe 
dever ser responsável pelo uso de um novo método referente a classe inicial. [Atenção para a 
pegadinha desta assertiva!]
A responsabilidade é definida pelo programador baseado nos métodos solicitados pela classe 
que está sendo criada.
Tem a seguinte responsabilidade de responder de maneira intuitiva por um programador ou 
analista de sistema, baseado nas interação e nos métodos menos utilizados, desta forma 
otimizando a criação.
Tem a responsabilidade de como primeira atividade procura‐se objetos de software existentes 
que satisfaçam os métodos necessários para a criação do objeto. Uma criação fica definida 
pela definida pela própria classe alocando‐se o método.

Continue navegando