Buscar

AV2 - 2.2012 - 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 4 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

1a Questão (Cód.: 125498) Pontos: 1,5 / 1,5 
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: E necessário que os objetos tenha alta coesão e que cada objeto seja responsável por uma 
determinada função, auxiliando assim o impacto de modificações em uma aplicação. 
 
 
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. 
 
 
 
 2a Questão (Cód.: 125529) Pontos: 0,0 / 1,5 
Os métodos polimórficos utilizam os conceitos de overloading e overrinding. Apresente a diferença entre os dois 
conceitos. 
 
 
Resposta: 
 
 
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. 
 
 
 
 3a Questão (Cód.: 116737) Pontos: 1,0 / 1,0 
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; 
 
 
 
 4a Questão (Cód.: 116815) Pontos: 0,0 / 0,5 
sobre o Polimorfismo considere a figura abaixo e selecione a reposta totalmente correta: 
 
 
 
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. 
 
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. 
 
 
 
 5a Questão (Cód.: 116936) Pontos: 0,5 / 0,5 
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 de interface 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. 
 
 
 
 6a Questão (Cód.: 115668) Pontos: 0,0 / 1,0 
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. 
 
 
 
 7a Questão (Cód.: 116752) Pontos: 0,5 / 0,5 
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 
 
 
 
 8a Questão (Cód.: 107796) Pontos: 0,5 / 0,5 
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. I i - 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. 
 
 
As afirmativas I, II, III estão incorretas 
 
As afirmativas II, III estão corretas e a afirmativa I está errada. 
 
As afirmativas I, III, estão corretas e II errada 
 
As afirmativas I, II, estão corretas e a afirmativa III está errada. 
 As afirmativas estão todas corretas 
 
 
 
 9a Questão (Cód.: 107782) Pontos: 0,0 / 0,5 
Considere as afirmativa 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. 
 
 
As afirmativas I, III, estão corretas e II errada 
 As afirmativas estão todas corretas 
 
As afirmativas I, II, III estão incorretas 
 
As afirmativas II, III estão corretas e a afirmativa I está errada. 
 As afirmativas I, II, estão corretas e a afirmativa III está errada. 
 
 
 
 10a Questão (Cód.: 107793)Pontos: 0,5 / 0,5 
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. 
 
 
As afirmativas II, III estão corretas e a afirmativa I está errada. 
 
As afirmativas I, II, III estão incorretas 
 As afirmativas I, II, estão corretas e a afirmativa III está errada. 
 
As afirmativas I, III, estão corretas e II errada 
 
As afirmativas estão todas corretas

Outros materiais