Baixe o app para aproveitar ainda mais
Prévia do material em texto
Avaliação: CCT0265_AVS_201301014354 » PADRÕES DE PROJETO DE SOFTWARE Tipo de Avaliação: AVS Aluno: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Professor: HORACIO DA CUNHA E SOUZA RIBEIRO Turma: XXXXXX Nota da Prova: Nota de Partic.: Data: 00/12/2014 11:16:55 1a Questão (Ref.: 201301218368) 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, cuja a principal vantagem é o de termos apenas uma única instancia da classe durante toda a execução do programa, sendo possível o acesso global de forma bastante simplificada. Gabarito: padrão singleton uma vantagem apontada é o desempenho de uma aplicação. 2a Questão (Ref.: 201301123580) Pontos: 0,0 / 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: Decorator. Bridge Singleton protype Instance 3a Questão (Ref.: 201301131095) Pontos: 0,0 / 0,5 Podemos afirmar que os Padrões de Criação da família GoF: Colocam em dúvida o tratamento dispensado aos usuários na fase de levantamento das necessidades. Fornecem um guia de como instanciar objetos, que normalmente envolve decisões dinâmicas para escolher, por exemplo, qual classe instanciar ou a quais objetos delegar responsabilidade. Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e colaboração mútua. São projetados para organizar, gerenciar e combinar diferentes comportamentos. Subutilizam as rotinas de tratamento de erros, em virtude da depuração de código fonte na fase de levantamento das necessidades junto aos usuários. 4a Questão (Ref.: 201301123571) 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, II, estão corretas e a afirmativa III está errada. 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, III estão incorretas 5a Questão (Ref.: 201301132539) Pontos: 0,0 / 1,0 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 Especialista da informação State Criador 6a Questão (Ref.: 201301134832) Pontos: 0,0 / 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. Iterator. Singleton. Bridge. Memento. 7a Questão (Ref.: 201301123118) Pontos: 0,0 / 0,5 Segundo Metsker, 2004, o padrão de projeto ______________ tem como solução mover a lógica de construção de uma classe para um objeto externo, a fim de reduzir a complexidade da mesma e permitir a construção gradual de objetos-alvo a partir dessa classe. Escolha uma das alternativas abaixo que preenche corretamente a lacuna apresentada na descrição acima. SINGLETON. MEDIATOR. BUILDER. FACTORY METHOD. FACADE. 8a Questão (Ref.: 201301131459) Pontos: 0,0 / 0,5 Memento:Captar e externalizar um estado interno de um objeto, de maneira que esse estado seja restaurado ao objeto em outro momento, sem violar seu encapsulamento (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 É 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 tem como objetivo criar um meio de armazenar informações sobre um objeto, permitindo acessar essas informações tanto para salvar o estado de um objeto específico, como para recuperar, sempre que for necessário. 9a Questão (Ref.: 201301141405) Pontos: 1,5 / 1,5 O que fazer para evitar o acoplamento alto e o reuso baixo entre dois ou mais elementos na hora de atribuir responsabilidades entre eles, segundo o princípio GRASP Indireção? Resposta: Devemos atribuir a responsabilidade a um objeto intermediário que irá meidar entre os diversos componentes ou serviços, para que eles não fiquem diretamente acoplados. Gabarito: Deve-se atribuir responsabilidade a um objeto intermediário para mediar entre diversos componentes ou serviços, de maneira que eles não fiquem diretamente acoplados. 10a Questão (Ref.: 201301132604) Pontos: 1,0 / 1,0 sobre o Polimorfismo considere a figura abaixo e selecione a reposta totalmente correta: 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 um método na classe PAI. Este método é copiado nas classes que herdam a classe PAI. Isto é polimorfismo. Define-se vários métodos. Cada método deve ter uma estrutura IF...THEN...para cada situação. 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 uma estrutura de herança. Automaticamente fica definido uma estrutura de métodos. Isto é polimorfismo
Compartilhar