Prévia do material em texto
PADRÕES DE PROJETO DE SOFTWARE COM JAVA Lupa Calc. Disc.: PADRÕES DE PROJ 2022.1 EAD (GT) / 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. 1. Analise o propósito a seguir: ''Permitir a criação de uma família de objetos relacionados ou dependentes, de forma que o módulo cliente não precise conhecer os objetos específicos das diferentes famílias, lidando apenas com as interfaces genéricas dos produtos dessas famílias''. Assinale a alternativa com o nome do padrão que possui esse propósito: Builder Singleton Abstract Factory Factory Method Prototype Explicação: A resposta certa é: Abstract Factory 2. Analise o propósito a seguir: ''Implementar a instanciação de objetos utilizando uma estrutura de herança, em que a superclasse define uma operação de criação de um produto genérico, e cada subclasse define a implementação dessa operação, criando um produto específico derivado do produto genérico definido na superclasse''. Assinale a alternativa com o nome do padrão que possui esse propósito: Prototype https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp javascript:diminui(); javascript:aumenta(); javascript:calculadora_on(); Singleton Abstract Factory Factory Method Builder Explicação: A resposta certa é: Factory Method 3. Você está desenvolvendo um sistema e percebe que está instanciando uma grande quantidade de objetos cujos atributos não mudam de valor durante toda a execução do programa. Muitos desses objetos instanciados são réplicas, o que gera uma utilização muito ineficiente da memória. Assinale a alternativa com o nome do padrão que poderia ser aplicado nesse cenário: Decorator Bridge Composite Flyweight Singleton Explicação: A resposta certa é: Flyweight 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 Composite Flyweight Proxy Bridge Explicação: https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp A resposta certa é: Composite 5. Você está desenvolvendo um sistema que produz informações guardadas em um ou mais objetos que só devem ser armazenados em um banco de dados após o processamento ser concluído. Entretanto, esses dados estão vinculados a uma sessão de usuário, que pode ser interrompida em função de problemas de conexão. Esse padrão oferece uma solução que permite que um objeto A capture e salve todo o estado de um objeto B da sessão, sem que A tenha que quebrar o encapsulamento de B, tornando possível a restauração do estado do objeto B, a partir de um estado capturado anteriormente por A. Assinale a alternativa com o nome do padrão que corresponde a essa estratégia de solução: Command Observer Mediator Memento Strategy Explicação: Gabarito: Memento 6. Você está desenvolvendo um sistema para acompanhar as cotações da bolsa de valores. As cotações podem ser acompanhadas na interface com usuário na forma textual (ticker da ação e o seu valor) e na forma de um gráfico de candlesticks, apresentando o histórico das cotações em um período do tempo. As duas formas de visualização devem estar em sincronia com as variações que ocorrem com o valor da cotação das ações. Assinale a alternativa com o nome do padrão que pode ser aplicado para resolver esse problema de sincronização de visualizações de um conjunto de informações com a sua fonte. Iterator State Strategy Mediator Observer https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp Explicação: Gabarito: Observer 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. Especialista na Informação. Indireção. Acoplamento Baixo. Polimorfismo. Invenção Pura. 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. Assinale a alternativa com uma afirmativa CORRETA sobre o padrão GRASP Variações Protegidas. O padrão Variações Protegidas sugere proteger o sistema de variações concentrando a lógica dessas variações em um módulo controlador. O padrão Variações Protegidas sugere identificar pontos do sistema propensos a variações e isolá-los com a criação de interfaces no seu entorno. O padrão Variações Protegidas sugere proteger as variações de algoritmos sensíveis por meio do uso de recursos de criptografia. O padrão Variações Protegidas sugere identificar pontos do sistema propensos a variações e isolá-los em um módulo com coesão lógica. O padrão Variações Protegidas sugere proteger o sistema de variações por meio de parâmetros definidos em uma classe com acesso global. Explicação: O arquiteto ou desenvolvedor de software tem como desafio identificar e proteger os pontos de variação de um software. O padrão Variações Protegida aplica conceitos básicos de orientação a objetos como encapsulamento, interfaces e polimorfismo de modo a identificar pontos do sistema propensos a variações e isolá-los. https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp 9. O ferramental do JPA oferece diversos componentes, com finalidades específicas, no âmbito da persistência de dados, oferecendo um caminho comum para o mapeamento objeto-relacional. Qual componente, oferecido pelo JPA, é responsável pelo manuseio das diversas entidades? Transaction Entity Column EntityManagerFactory EntityManager Explicação: A resposta correta é: EntityManager 10. Ao trabalhar com um aplicativo corporativo, segundo a arquitetura MVC, as camadas Model e Controller são definidas ao nível do projeto interno com o terminador "ejb", e o NetBeans oferece ferramentas de automatização para a geração dos componentes necessários, com utilização de duas tecnologias específicas. Quais são as tecnologias utilizadas para as duas camadas citadas, respectivamente? JPA e JSP Servlet e JPA EJB e Servlet JSP e Servlet JPA e EJB Explicação: A resposta correta é: JPA e EJB https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp https://simulado.estacio.br/bdq_simulados_exercicio_ensineme.asp