Baixe o app para aproveitar ainda mais
Prévia do material em texto
PADRÕES DE PROJETOS DE SOFTWARE COM JAVA DGT1354_202008207983_TEMAS Aluno: FELIPE FERREIRA DA PAZ Matr.: 202008207983 Disc.: PADRÕES DE PROJETOS 2023.1 EAD (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 02684PADRÕES GOF DE CRIAÇÃO 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: Factory Method Prototype Builder Abstract Factory Singleton Data Resp.: 25/05/2023 16:04:14 Explicação: A resposta certa é: Singleton 2. Analise a estratégia de solução a seguir: ''Implementar uma operação clone em cada produto concreto a ser instanciado, permitindo que um módulo cliente crie uma nova instância por meio da criação de uma réplica de um objeto já existente''. Assinale a alternativa com o nome do padrão que define essa estratégia: Factory Method Prototype Builder Singleton Abstract Factory Data Resp.: 25/05/2023 16:04:49 Explicação: A resposta certa é: Prototype 02685PADRÕES GOF ESTRUTURAIS 3. Sobre o padrão Composite, assinale a alternativa correta: Esse padrão é orientado para construção e manipulação de grafos cíclicos de objetos. Esse padrão é utilizado na composição de adaptadores para serviços implementados por componentes de terceiros. Esse padrão permite manipular agregados e seus elementos com uma interface uniforme, isto é, com as mesmas operações. O conceito de polimorfismo não está presente na solução proposta pelo padrão. Esse padrão é apropriado para situações em que operações sobre o todo não devam ser aplicadas de forma recursiva às suas partes. Data Resp.: 25/05/2023 16:05:51 Explicação: A resposta certa é: Esse padrão permite manipular agregados e seus elementos com uma interface uniforme, isto é, com as mesmas operações. 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: Decorator Facade Bridge Adapter Proxy Data Resp.: 25/05/2023 16:06:16 Explicação: A resposta certa é: Bridge 02683PADRÕES GOF COMPORTAMENTAIS 5. "Seja um cenário em que existem vários objetos capazes de realizar o processamento associado a uma requisição. Esses objetos são organizados em uma lista encadeada de modo que a requisição vai sendo passada do primeiro objeto receptor da requisição para o próximo da lista, e assim sucessivamente, até que o resultado desejado seja atingido". Assinale a alternativa com o nome do padrão com esse propósito: Command Iterator Chain of Responsibility Mediator Strategy Data Resp.: 25/05/2023 16:08:59 Explicação: Gabarito: Chain of Responsibility 6. Assinale a alternativa que expressa a intenção do padrão de projeto Template Method: 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. 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. Data Resp.: 25/05/2023 16:10:34 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. 02686PADRÕES GRASP 7. Assinale a alternativa que descreve uma situação em que a utilização do padrão Especialista de Informação pode comprometer a coesão de um módulo. Quando definimos um objeto intermediário para mediar a comunicação entre objetos remotos. Quando colocamos em uma mesma classe operações de naturezas diferentes como lógica do negócio e acesso a banco de dados, uma vez que eles utilizam as mesmas informações da classe. Quando definimos uma classe que fornece uma interface de alto nível para módulos clientes utilizarem para disparar operações do negócio. Quando introduzimos uma interface abstrata em substituição a um código centralizado em um módulo com estruturas condicionais do tipo switch-case ou if-then-else. Quando definimos a responsabilidade por criar um objeto para a classe que contém todas as informações necessárias para realizar essa criação. Data Resp.: 25/05/2023 16:12:49 Explicação: No padrão especialista de informação é atribuída à classe que possua o conhecimento necessário para realizá-la. Assim uma classe X sujeita a duas fontes de mudança fere o princípio fundamental da coesão. 8. Em um sistema de informação, o desenvolvedor decide colocar em um módulo X todas as operações necessárias para a execução de um caso de uso. Esse módulo não distribui a responsabilidade com outras classes do sistema. Ele apenas utiliza classes de domínio e suas operações get/set para obter ou modificar dados presentes em objetos dessas classes. O resultado é um módulo conhecido como ''God Class'', ou seja, uma classe com muitas operações, com milhares de linhas de código. Qual tipo de coesão está presente no módulo X conforme a descrição acima? Procedural Funcional Coincidente Temporal Lógica Data Resp.: 25/05/2023 16:12:56 Explicação: Na coesão procedural os elementos são agrupados de modo a serem executados em uma determinada sequência, utilizando diferentes conjuntos de dados. TECNOLOGIAS JPA E JEE 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 Model View e Controller Model e Controller Controller e Model Model e View Data Resp.: 25/05/2023 16:13:00 Explicação: A resposta correta é: View e Model 10. Ao trabalharcom 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 Flyweight e componente do tipo EJB Padrão de desenvolvimento DAO e componente do tipo JPA Padrão de desenvolvimento Front Controller e componente do tipo Servlet Padrão de desenvolvimento Facade e componente do tipo EJB Data Resp.: 25/05/2023 16:13:04 Explicação: A resposta correta é: Padrão de desenvolvimento Front Controller e componente do tipo Servlet
Compartilhar