Baixe o app para aproveitar ainda mais
Prévia do material em texto
Avaliação: CCT0152_AV_201404054031 » PADRÕES DE PROJETO DE SOFTWARE Tipo de Avaliação: AV Aluno: 201404054031 - EDUARDO DE MOURA RODRIGUES Professor: HORACIO DA CUNHA E SOUZA RIBEIRO Turma: 9001/AA Nota da Prova: 6,5 Nota de Partic.: 2 Data: 19/08/2014 14:22:15 1a Questão (Ref.: 201404262013) Pontos: 1,5 / 1,5 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: Essa é a descrição do padrão Singleton. A principal vantagem desse padrão é termos uma única instância da classe durante toda a execução do programa, sendo possível seu acesso global de forma simplificada. Gabarito: padrão singleton uma vantagem apontada é o desempenho de uma aplicação. 2a Questão (Ref.: 201404176480) Pontos: 0,0 / 1,5 Considere que o sistema precisa acessar em uma base de dados feita com software antigo e que se corre o risco de provocar futuras manutenções no novo sistema. Que padrão Grasp podemos utilizar para se isolar os métodos que acessam esse banco? Resposta: O padrão Grasp de baixo acoplamento nos indica que devemos manter a ligação entre as classes no mínimo para tornar o código mais reutilizável. Já o padrão de alta coesão sugere que tenhamos cada classe individual com pouco trabalho e as ações o máximo possível relacionadas entre si. Se utilizarmos ambos os padrões deixaremos o sistema com manutenção mais fácil no futuro, pois nos leva a termos os métodos de acesso a esse banco de dados numa classe isolada das demais. Gabarito: O padrão Variações protegidas permite definir uma definir classe artificial com o objetivo é atribuir responsabilidade a um objeto intermediário para encapsular este métodos de forma que eles não sejam diretamente acoplados ao sistema. 3a Questão (Ref.: 201404178410) Pontos: 0,5 / 0,5 (FCC-2011) Os design patterns podem ser modelados utilizando-se a linguagem UML que fornece um meio eficiente de modelar pa- drões de projeto representando-os como colaborações. 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. 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. 4a Questão (Ref.: 201404167216) Pontos: 0,5 / 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, estão corretas e a afirmativa III está errada. As afirmativas II, III estão corretas e a afirmativa I está errada. As afirmativas I, II, III estão incorretas 5a Questão (Ref.: 201404167225) Pontos: 0,5 / 0,5 Programadores se deparam muitas vezes com a situação onde é preciso acrescentar responsabilidades a objetos e não a classe. Uma alternativa é atribuir dinamicamente a um dado objeto. Este padrão é chamado de: Bridge Decorator. Singleton protype Instance 6a Questão (Ref.: 201404167227) 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 estão todas corretas 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 I, II, III estão incorretas 7a Questão (Ref.: 201404178477) Pontos: 0,5 / 0,5 (CESGRANRIO - 2009) Por motivo de segurança, deseja-se adicionar registro (log) das operações efetuadas no sistema de contabilidade de uma empresa. O arquiteto do sistema decide que deve existir somente uma instância de uma classe de registro (log) e que esta será o ponto de acesso global para os demais componentes do sistema. Que padrão de projeto pode ser utilizado nesse caso? Visitor. Memento. Singleton. Bridge. Iterator. 8a Questão (Ref.: 201404178472) Pontos: 0,5 / 0,5 (CESGRANRIO - 2009) 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 Adapter é inferior ao Bridge porque não evita a replicação de código. Ambos promovem a flexibilidade ao fornecer um nível de endereçamento indireto para outro objeto. Ambos são padrões estruturais que possuem alguns atributos em comum. 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. 9a Questão (Ref.: 201404176171) 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 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 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 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. 10a Questão (Ref.: 201404176376) Pontos: 1,0 / 1,0 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. É um principio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em um projetoorientado 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 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. Período de não visualização da prova: desde 19/08/2014 até 04/09/2014.
Compartilhar