Prévia do material em texto
Material de Estudo: Engenharia de Software - Material 2 Tema: Padrões de Projeto e Arquitetura de Software 1. Em um sistema de comércio eletrônico, a necessidade de implementar diferentes algoritmos de cálculo de frete (correios, transportadoras, etc.) surge. Qual padrão de projeto melhor se adapta a essa situação, permitindo a adição de novos algoritmos sem modificar o código existente? a) Singleton. b) Observer. c) Strategy. d) Factory Method. e) Decorator. Resposta: c) O padrão Strategy permite definir uma família de algoritmos, encapsular cada um deles e torná-los intercambiáveis. 2. Um sistema de monitoramento de sensores ambientais precisa notificar diferentes componentes (interface gráfica, banco de dados, etc.) sobre mudanças nos dados dos sensores. Qual padrão de projeto facilita essa comunicação assíncrona e desacoplada? a) Adapter. b) Composite. c) Facade. d) Observer. e) Proxy. Resposta: d) O padrão Observer define uma dependência um-para-muitos entre objetos, onde um objeto (sujeito) notifica seus dependentes (observadores) sobre mudanças em seu estado. 3. Em um sistema de gestão de conteúdo (CMS), a interface de edição de artigos permite adicionar diferentes funcionalidades (negrito, itálico, imagens, etc.) de forma dinâmica. Qual padrão de projeto possibilita essa extensibilidade sem modificar a estrutura original do artigo? a) Bridge. b) Flyweight. c) Decorator. d) Template Method. e) State. Resposta: c) O padrão Decorator permite adicionar responsabilidades a um objeto dinamicamente, sem alterar sua classe. 4. Um sistema de processamento de imagens precisa lidar com diferentes formatos de arquivo (JPEG, PNG, GIF, etc.). Qual padrão de projeto facilita a criação de objetos de diferentes tipos, sem especificar a classe concreta a ser instanciada? a) Abstract Factory. b) Builder. c) Prototype. d) Factory Method. e) Memento. Resposta: d) O padrão Factory Method define uma interface para criar um objeto, mas deixa as subclasses decidirem qual classe instanciar. 5. Em um sistema de controle de acesso, a necessidade de restringir o acesso a determinados recursos com base no perfil do usuário surge. Qual padrão de projeto permite adicionar funcionalidades de segurança de forma transparente, sem modificar o código dos recursos protegidos? a) Proxy. b) Command. c) Iterator. d) Mediator. e) Visitor. Resposta: a) O padrão Proxy fornece um substituto para outro objeto, controlando o acesso a ele. 6. Um sistema de simulação de tráfego precisa lidar com um grande número de veículos, cada um com atributos e comportamentos semelhantes. Qual padrão de projeto otimiza o uso de memória, compartilhando o estado intrínseco dos objetos? a) Interpreter. b) Flyweight. c) Chain of Responsibility. d) Visitor. e) State. Resposta: b) O padrão Flyweight permite compartilhar o estado intrínseco de objetos, reduzindo o consumo de memória. 7. Em um sistema de automação industrial, a necessidade de definir um fluxo de trabalho complexo, com diferentes etapas e dependências, surge. Qual padrão de projeto facilita a definição e execução desse fluxo de trabalho? a) Bridge. b) Composite. c) Facade. d) Template Method. e) State. Resposta: d) O padrão Template Method define o esqueleto de um algoritmo em uma superclasse, permitindo que as subclasses forneçam implementações específicas para algumas etapas.