Buscar

AV - PADRÕES DE PROJETO DE SOFTWARE

Prévia do material em texto

Avaliação: » PADRÕES DE PROJETO DE SOFTWARE 
Tipo de Avaliação: AV 
Aluno: 
Professor: CLAUDIA ABREU PAES Turma: 
Nota da Prova: 2,0 Nota de Partic.: 1 Av. Parcial 2 Data: 13/06/2017 
O aproveitamento da Avaliação Parcial será considerado apenas para as provas com nota maior ou igual a 4,0. 
 
 
 1a Questão (Ref.: 201501390207) Pontos: 0,0 / 1,0 
Considerando que o padrão tem o objetivo de garantir que existe apenas uma instancia de uma certa classe a 
qualquer instante e em qualquer ponto de um sistema. Indique o padrão mencionado e cite uma vantagem de 
sua utilização. 
 
 
Resposta: Os padrões estruturais lidam com a composição de classes ou objetos. 
 
 
Gabarito: padrão singleton uma vantagem apontada é o desempenho de uma aplicação. 
 
 
 
 2a Questão (Ref.: 201501313126) Pontos: 0,0 / 1,0 
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. 
 
 
Resposta: Através do método GOF, podemos instanciar os objetos definindo as classes mútuas de um 
subsistema ou sistema, derivando assim de baixo acoplamento. 
 
 
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. 
 
 
 
 3a Questão (Ref.: 201501294947) Pontos: 0,0 / 1,0 
Em padrão de projeto existe uma situação onde uma classe chama um método abstrato especificado em alguma 
classe abstrata (ou interface) e a subclasse concreta vai decidir que tipo exato de objeto criar e retornar. 
 
Baseado nessa descrição marque a alternativa que aponta o padrão relacionado. 
 
 
Builder. 
 Factory Method. 
 
Facade. 
 
Singleton. 
 Mediator 
 
 
 
 4a Questão (Ref.: 201501295413) Pontos: 0,0 / 1,0 
javascript:alert('Nota%20aferida%20por%20%20em%2020/06/2017.');
javascript:alert('Nota%20aferida%20por%20%20em%2020/06/2017.');
javascript:alert('Ref. da quest%C3%A3o: 201501390207/n/nStatus da quest%C3%A3o: Liberada para Uso.');
javascript:alert('Ref. da quest%C3%A3o: 201501313126/n/nStatus da quest%C3%A3o: Liberada para Uso.');
javascript:alert('Ref. da quest%C3%A3o: 201501294947/n/nStatus da quest%C3%A3o: Liberada para Uso.');
javascript:alert('Ref. da quest%C3%A3o: 201501295413/n/nStatus da quest%C3%A3o: Liberada para Uso.');
Assinale a afirmativa correta sobre o padrão Builder: 
 
 
é uma abordagem que não facilita a criação de objetos com diferentes configurações e representações, 
tornando o código dependente a complexidade das classes relacionadas 
 Um dos principais objetivos do padrão Builder é separar o algoritmo de criação de um objeto complexo 
tanto da especificação, quanto das partes que o compõem. 
 
A legibilidade da solução final, ou seja, para entender como um objeto é criado e sob quais condições, 
fica comprometida 
 
Deve-se é separar no construtor da própria classe a lógica para criação de um objeto e concentrar a 
lógica de criação em uma hierarquia de herança. 
 Deve-se é embutir no construtor da própria classe a lógica para criação de um objeto ou ainda distribuir 
a lógica de criação em vários métodos adicionais. 
 
 
 
 5a Questão (Ref.: 201501878142) Pontos: 1,0 / 1,0 
Um compositor musical deseja criar uma hierarquia de classes para representar a estrutura das suas notas 
musicais. Em primeiro lugar, definiu uma classe abstrata chamada Melodia, a seguir, criou duas classes 
derivadas, uma chamada Nota e outra chamada Partitura. Cada Nota musical representa o elemento mínimo de 
uma Melodia e cada Partitura é formada por uma ou mais notas. Marque a alternativa que representa o melhor 
padrão de projeto para modelar este problema. 
 
 
Adapter 
 
Façade 
 Composite 
 
Bridge 
 
Proxy 
 
 
 
 6a Questão (Ref.: 201501785269) Pontos: 0,0 / 1,0 
Que padrão estrutural usa compartilhamento para suportar um grande número de pequenos objetos de forma 
eficiente. 
 
 
 Bridge 
 
Composite 
 
Decorator 
 
Facade 
 Flyweight 
 
 
javascript:alert('Ref. da quest%C3%A3o: 201501878142/n/nStatus da quest%C3%A3o: Liberada para Uso.');
javascript:alert('Ref. da quest%C3%A3o: 201501785269/n/nStatus da quest%C3%A3o: Liberada para Uso.');
 
 7a Questão (Ref.: 201501305970) Pontos: 0,5 / 0,5 
(CESGRANRIO - 2008) Muitos frameworks utilizam um padrão de projeto (design pattern) que se baseia no 
princípio de projeto "Não nos chame, nós iremos chamar você" (O Princípio de Hollywood: "Don't call us, we'll 
call you."). Uma classe da aplicação herda de uma classe do framework que possui métodos abstratos, os quais 
são chamados em outros métodos concretos. A classe da aplicação sobrepõe os métodos abstratos da classe do 
framework com métodos concretos, permitindo que os métodos concretos da classe do framework sejam 
chamados. 
 
O padrão de projeto (design pattern) em questão chama-se 
 
 
Strategy. 
 
Singleton. 
 
Abstract Factory. 
 Template Method. 
 
Decorator. 
 
 
 
 8a Questão (Ref.: 201501306640) Pontos: 0,0 / 0,5 
(FGV - 2009) Os padrões de projeto orientados a objeto podem ter finalidade de criação, estrutural ou 
comportamental. Os padrões de criação se preocupam com o processo de criação de objetos. Os padrões 
estruturais lidam com a composição de classes ou de objetos. Os padrões comportamentais caracterizam as 
maneiras pelas quais classes ou objetos interagem e distribuem responsabilidades. 
 
Assinale a alternativa que apresenta apenas padrões de projeto comportamentais. 
 
 
Prototype, Abstract Factory e Builder. 
 
Singleton, Composite e Interpreter. 
 Mediator, Interpreter e Command. 
 Composite, Decorato e Proxy. 
 
Proxy, Builder e Mediator. 
 
 
 
 9a Questão (Ref.: 201501304365) Pontos: 0,0 / 0,5 
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 é conservar as funcionalidades em não se permita adicionar novas, 
E obriga que haja necessidade de alterar sua implementação 
 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 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. 
 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. 
 
 
javascript:alert('Ref. da quest%C3%A3o: 201501305970/n/nStatus da quest%C3%A3o: Liberada para Uso.');
javascript:alert('Ref. da quest%C3%A3o: 201501306640/n/nStatus da quest%C3%A3o: Liberada para Uso.');
javascript:alert('Ref. da quest%C3%A3o: 201501304365/n/nStatus da quest%C3%A3o: Liberada para Uso.');
 
 10a Questão (Ref.: 201501304570) Pontos: 0,5 / 0,5 
O padrão Variações protegidas tem como característica: 
 
 
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. 
 
é 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. 
 É um principio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em um 
projeto orientadoa objetos, tais como: variações nos dados, comportamento, hardware, componentes de 
software, sistemas operacionais, entre outros. 
 
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. 
 
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. 
 
javascript:alert('Ref. da quest%C3%A3o: 201501304570/n/nStatus da quest%C3%A3o: Liberada para Uso.');

Continue navegando