Baixe o app para aproveitar ainda mais
Prévia do material em texto
1. Analise a estratégia de solução a seguir: ''Definir uma hierarquia de classes responsáveis pela instanciação de um objeto complexo, geralmente construído a partir de um conjunto de passos, sendo cada passo definido como uma operação das classes dessa hierarquia, separando o processo de criação da representação interna dos produtos''. Assinale a alternativa com o nome do padrão que define essa estratégia: Builder Singleton Factory Method Prototype Abstract Factory Explicação: A resposta certa é: Builder 2. A classe java.awt.Toolkit é um exemplo da aplicação de que padrão de projeto? Prototype Singleton Factory Method Abstract Factory Builder Explicação: A resposta certa é: Abstract Factory 3. Assinale a alternativa com dois padrões que possuem uma estrutura de solução muito parecida, porém, com propósitos distintos. Adapter e Decorator. Composite e Decorator. Proxy e Adapter. Adapter e Composite. Proxy e Composite. Explicação: A resposta certa é: Composite e Decorator. 4. Possibilitar a manipulação de objetos individuais e de agregados de uma estrutura hierárquica (árvore) de objetos por meio do mesmo conjunto de operações, sem que o módulo cliente precise fazer a distinção entre o tipo do objeto manipulado (individual ou agregado). Assinale a alternativa com o nome do padrão que possui esse propósito: Adapter Bridge Proxy Flyweight Composite Explicação: A resposta certa é: Composite 5. "Na implementação de um processo complexo, um módulo A chama operações de um módulo B e de um módulo C. B, por sua vez, chama operações de C e de D. O módulo C chama operações de A e de E. O módulo D chama operações dos módulos B e C". Esse cenário ilustra uma interação entre objetos no estilo muitos para muitos. Para simplificar esse processo, define-se um objeto que centraliza todas as interações entre esses objetos, de modo que eles passam a se comunicar apenas com esse elemento central. Dessa forma, o elemento central X passa a receber uma notificação de A, para então chamar operações de B e C. Da mesma maneira, a partir de uma notificação enviada por B, X chama operações de C e de D. Essa descrição corresponde à estrutura de solução de qual padrão? Strategy Visitor Chain of Responsibility Mediator Template Method Explicação: Gabarito: Mediator 6. Assinale a alternativa que expressa a intenção do padrão de projeto Template Method: Permite capturar o estado interno de um objeto, permitindo que o seu estado seja restaurado posteriormente, sem quebrar o encapsulamento desse objeto. Encapsular uma requisição em um objeto, permitindo o registro do histórico de requisições disparadas pelos módulos cliente e a criação de filas de requisições. Encapsular uma família de algoritmos em objetos, permitindo que os módulos clientes possam utilizar esses algoritmos de forma intercambiável. Definir uma relação de dependência entre objetos, de modo a garantir que modificações no estado do objeto detentor da informação sejam notificadas automaticamente para os objetos inscritos previamente como interessados em receber essas notificações. Implementar a estrutura de um algoritmo genérico em uma superclasse, considerando que os passos comuns são implementados na própria superclasse, enquanto os passos específicos são implementados nas suas subclasses. Explicação: Gabarito: Implementar a estrutura de um algoritmo genérico em uma superclasse, considerando que os passos comuns são implementados na própria superclasse, enquanto os passos específicos são implementados nas suas subclasses. 7. "Ao invés de colocarmos o cálculo do frete de um pedido na classe Pedido, optamos por criar uma hierarquia de classes para encapsular os diferentes algoritmos de cálculo de frete que temos no sistema". Assinale a alternativa com o nome do padrão GRASP que recomenda a criação de classes que não representam diretamente elementos concretos encontrados no domínio no negócio, seguindo uma decomposição de responsabilidades por comportamento e não por representação, como a descrita no cálculo do frete. Polimorfismo. Acoplamento Baixo. Indireção. Invenção Pura. Especialista na Informação. Explicação: O padrão Invenção Pura tem como finalidade criar classes artificiais, ou seja, classes que não representam um conceito do domínio do problema. 8. Um módulo X escreve dados em uma tabela de um banco de dados relacional que é lida por um módulo Y. Se o desenvolvedor responsável pelo módulo X resolver mudar algo no esquema dessa tabela, será preciso avaliar o impacto dessa mudança em Y. Esse fato evidencia a existência de um acoplamento de que natureza entre os módulos X e Y? Acoplamento Externo Acoplamento de Dados Acoplamento de Estrutura Acoplamento de Controle Acoplamento Global Explicação: O acoplamento externo ocorre quando módulos compartilham alguma parte do ambiente externo ao software, tais como banco de dados. 9. A arquitetura MVC (Model, View e Controller) é utilizada de forma ampla, na criação de sistemas cadastrais, e caracteriza-se pela divisão do sistema em três camadas, com objetivos específicos. Considerando a divisão utilizada pelo MVC, a interface de usuário e o componente DAO estariam, respectivamente, nas camadas: View e Controller View e Model Model e Controller Model e View Controller e Model Explicação: A resposta correta é: View e Model 10. Ao trabalhar com um aplicativo corporativo, segundo a arquitetura MVC, ocorre uma divisão natural das camadas, em termos dos projetos internos, ficando a camada View sob responsabilidade do projeto com terminador "war". A interface padrão, conforme o próprio terminador indica, é um aplicativo Java Web, sendo comum a implementação de um padrão de desenvolvimento para centralizar o tratamento das requisições, bem como redirecionar para a visualização correta, após efetuar as chamadas para a camada Controller. De qual padrão estamos falando, e qual o componente deve implementá-lo? Padrão de desenvolvimento Service Locator e componente do tipo JNDI Padrão de desenvolvimento Facade e componente do tipo EJB Padrão de desenvolvimento Front Controller e componente do tipo Servlet Padrão de desenvolvimento DAO e componente do tipo JPA Padrão de desenvolvimento Flyweight e componente do tipo EJB Explicação: A resposta correta é: Padrão de desenvolvimento Front Controller e componente do tipo Servlet
Compartilhar