Baixe o app para aproveitar ainda mais
Prévia do material em texto
PADRÕES DE PROJETO DE SOFTWARE COM JAVA 1 - Analise o propósito a seguir: ''Garantir que uma classe somente tenha uma instância em um processo de execução, fornecendo uma forma de acesso a essa única instância e impedindo que outros módulos possam ter acesso a seu construtor ''. Assinale a alternativa com o nome do padrão que possui esse propósito: Singleton Prototype Factory Method Builder Abstract Factory 2 - Você precisa implementar um módulo que leia um arquivo RTF (Rich Text Format) e converta seu conteúdo em diferentes formatos (ASCII, TeX, HTML etc.). Sabendo que o arquivo é composto por diferentes partes (texto, formatação, figuras etc.), qual dos padrões seria mais indicado para isolar o conversor das diferentes formas de representação do conteúdo gerado? Singleton Abstract Factory Builder Factory Method Prototype 3 - 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: Proxy Bridge Composite Adapter Flyweight 4 - Você está implementando um conjunto de componentes de interface gráfica com o usuário que precisa rodar em diferentes plataformas (ex.: Windows, Linux). Você quer poder evoluir a estrutura dos componentes gráficos de forma independente das implementações específicas dos componentes para cada plataforma. Portanto, você quer poder especializar os componentes gráficos de forma independente das plataformas onde esses componentes rodarão. Assinale a alternativa com o nome do padrão mais indicado para ser aplicado nesse contexto: Facade Bridge Decorator Adapter Proxy 5 - Assinale a alternativa que expressa a intenção do padrão de projeto Template Method: Encapsular uma família de algoritmos em objetos, permitindo que os módulos clientes possam utilizar esses algoritmos de forma intercambiável. 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. 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. 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. Permite capturar o estado interno de um objeto, permitindo que o seu estado seja restaurado posteriormente, sem quebrar o encapsulamento desse objeto. 6 - Você está implementando um sistema e quer guardar o histórico de todas as requisições efetuadas pelo usuário via interface gráfica, de forma a poder realizar operações, como desfazer (undo) e refazer (redo) requisições. Assinale a alternativa com o nome do padrão mais indicado para ser aplicado nesse contexto: State Chain of Responsibility Command Mediator Strategy 7 - O padrão GoF Mediator reduz uma rede de dependências entre objetos de uma topologia N x N para uma topologia 1 x N, introduzindo um objeto central que recebe as notificações enviadas pelos objetos mediados e encaminha o processamento para os objetos responsáveis. Qual padrão GRASP está diretamente relacionado à estratégia de introduzir um objeto para intermediar a interação entre outros objetos? Indireção Criador Polimorfismo Especialista na Informação Coesão Alta 8 - Uma classe X contém o seguinte conjunto de métodos: Fechar arquivos Fechar conexão com banco de dados Finalizar tarefas em execução em segundo plano Liberar buffers de armazenamento temporário Finalizar operação, que é um método executado na finalização do sistema e que chama todos os métodos anteriores. Assinale a alternativa com o tipo de coesão da classe X: Coesão Coincidente Coesão Lógica Coesão Temporal Coesão Sequencial Coesão Funcional 9 - 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 DAO e componente do tipo JPA Padrão de desenvolvimento Facade e componente do tipo EJB Padrão de desenvolvimento Service Locator e componente do tipo JNDI Padrão de desenvolvimento Front Controller e componente do tipo Servlet Padrão de desenvolvimento Flyweight e componente do tipo EJB 10 - Uma mudança essencial no modelo de programação Java, com a evolução do JEE, foi o uso de anotações nas diversas tarefas de configuração dos EJBs do aplicativo. Para que serve a anotação Local no ambiente de criação de EJBs? Definir a interface de acesso local ao pool de EJBs. Definir um Stateful Session Bean. Definir um contexto de persistência local para o Session Bean. Definir a interface de acesso às entidades do JPA. Definir um Stateless Session Bean.
Compartilhar