Prévia do material em texto
Avaliação: CCT0265_AV_201307133185 » PADRÕES DE PROJETO DE SOFTWARE Tipo de Avaliação: AV Aluno: 201307133185 - WILSON LOPES DA SILVA JUNIOR Professor: JOSE CARLOS MILLAN Turma: 9001/AA Nota da Prova: 4,5 Nota de Partic.: 1 Data: 18/11/2015 21:20:41 1a Questão (Ref.: 201307807279) Pontos: 1,0 / 1,5 Cite duas vantagens de se aplicar o Padrão FactoryMethod Resposta: O padrao FactoryMethod e um padrao de criação que tem a vantagem de fornecer uma interface de criação de objetos deixando deixando as subclasses escolherem qual classe instanciar. Não precisa conhecer as classes para retomar uma opção dela atraves de metodo. Gabarito: 1- Cria uma hierarquia de criação de objetos; 2- A criação dos objetos é desacoplada das classes concretas; 2a Questão (Ref.: 201307272012) Pontos: 1,5 / 1,5 O polimorfismo é um princípio GRASP que aumenta o nível de baixo acoplamento e alta coesão. Apresente uma forma de utilização. Resposta: Cria metodos abstratos em classe genericos herdavel que são referenciados por classes relacionadas caracterizando um acoplamento dessa interface. Gabarito: Criar métodos abstratos em classes genéricas e herdável que são referenciados por classes relacionadas, caracterizando um acoplamento desta interface. 3a Questão (Ref.: 201307810792) Pontos: 0,0 / 0,5 O Design Patterns que tem a finalidade de usar compartilhamento para suportar grandes quantidades de objetos, de granularidade fina, de maneira eficiente, é denominado State Composite Flyweight Builder Strategy 4a Questão (Ref.: 201307254289) Pontos: 0,5 / 0,5 Consideram as afirmativa abaixo sobre o padrão protype 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 foi necessário. As afirmativas estão todas corretas As afirmativas I, III, estão corretas e II errada 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. As afirmativas I, II, III estão incorretas 5a Questão (Ref.: 201307837017) Pontos: 0,5 / 0,5 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. Façade Adapter Proxy Bridge Composite 6a Questão (Ref.: 201307744134) Pontos: 0,5 / 0,5 Que padrão estrutural provê um ponto de atendimento para que outro objeto possa controlar o acesso ao primeiro: Proxy Adapter Facade Flyweight Decorator 7a Questão (Ref.: 201307264842) Pontos: 0,5 / 0,5 (CESGRANRIO - 2010) Um dos participantes da equipe de desenvolvimento de um framework deve implementar uma operação em uma das classes desse framework. Seja X o nome dessa classe. Essa operação implementa um algoritmo em particular. Entretanto, há passos desse algoritmo que devem ser implementados pelos usuários do framework através da definição de uma subclasse de X. Sendo assim, qual o padrão de projeto do catálogo GoF (Gang of Four) a ser usado pelo desenvolvedor do framework na implementação da referida operação, dentre os listados a seguir? Decorator. Observer. Template Method. Interpreter. Singleton. 8a Questão (Ref.: 201307882233) Pontos: 0,0 / 0,5 O padrão de projeto Comand apresenta uma serie aplicabilidades. Assinale dentre as opções abaixo a unica que não esta correta. permitir fácil inclusão de novos comandos,permitir isições concorrentes, manter histórico de execução de comandos, suportar operações para desfazer comandos e, principalmente, evitar o acoplamento direto entre classes e serviços. permitir tratamento de requ permitir tratamento de requisições concorrentes; Manter histórico de execução de comandos; Evitar o acoplamento direto entre classes e serviços; permitir fácil inclusão de novos comandos Permitir em casos excepcionais o acoplamento direto entre classes e serviços; 9a Questão (Ref.: 201307728397) Pontos: 0,0 / 1,0 Os 9 padrões definidos pela General Responsability Assignment Software Pattener são? 1.Singleton; 2.High Coesion; 3.Low Coupling; 4.Controller; 5.Polymorphis; 6.Information Expert; 7.Pure Fabrication; 8.Indirection; e 9.Variation. 1.Creator; 2.High Coesion; 3.Low Coupling; 4.Controller; 5.Polymorphis; 6.Information Expert; 7.Pure Fabrication; 8.Indirection; e 9.Variation. 1.Creator; 2.Decoretor; 3.FlyWeight; 4.Controller; 5.Polymorphis; 6.Information Expert; 7.Pure Fabrication; 8.Indirection; e 9.Variation. 1.Creator; 2.High Coesion; 3.Low Coupling; 4.Buider; 5.Bridge; 6.Information Expert; 7.Pure Fabrication; 8.Indirection; e 9.Variation. 1.Creator; 2.High Coesion; 3.Low Coupling; 4.Controller; 5.Polymorphis; 6.Information Expert; 7.Pure Fabrication; 8.Indirection; e 9.Facade. 10a Questão (Ref.: 201307263445) Pontos: 0,0 / 1,0 O padrão Variações protegidas 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. É 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. 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. é 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. 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.