Prévia do material em texto
Padrões de projeto (Design Patterns) O que sao padroes de projeto (Design Patterns)? a) Sao solucoes prontas para problemas especificos de programacao. b) Sao normas de codificacao que todos os desenvolvedores devem seguir. c) Sao ferramentas de desenvolvimento que melhoram a performance do codigo. d) Sao praticas de seguranca para proteger o software contra ataques. Resposta correta: a) Padroes de projeto sao solucoes comprovadas para problemas recorrentes que surgem durante o desenvolvimento de software. Eles fornecem uma abordagem reutilizavel para resolver desafios de design, tornando o codigo mais modular e flexivel. Qual a principal vantagem de usar padroes de projeto? a) Tornam o codigo mais longo e dificil de entender. b) Aumentam a complexidade do codigo sem trazer beneficios. c) Facilitam a manutencao e a escalabilidade do software. d) Nao tem nenhuma vantagem significativa. Resposta correta: c) A principal vantagem dos padroes de projeto e que eles ajudam a criar sistemas mais organizados e reutilizaveis, facilitando a manutencao e a escalabilidade. Alem disso, eles promovem boas praticas de design que tornam o codigo mais facil de entender e modificar. Qual dos seguintes e um exemplo de padrao de projeto estrutural? a) Singleton b) Factory Method c) Adapter d) Observer Resposta correta: c) O padrao Adapter e um exemplo de padrao estrutural. Ele permite que classes com interfaces incompativeis possam trabalhar juntas, "adaptando" a interface de uma classe para a de outra, sem modificar o codigo original. Qual e o padrao de design usado para garantir que uma classe tenha apenas uma instancia? a) Factory Method b) Singleton c) Composite d) Prototype Resposta correta: b) O padrao Singleton e utilizado para garantir que uma classe tenha apenas uma instancia ao longo da execucao do programa. Esse padrao e util quando e necessario controlar o acesso a um unico recurso ou servico. O que caracteriza o padrao de projeto "Factory Method"? a) A criacao de objetos e delegada a subclasses. b) Permite criar objetos sem especificar a classe exata do objeto a ser criado. c) Cria um unico objeto compartilhado entre todas as instancias da aplicacao. d) Define a estrutura de um sistema de maneira flexivel e reutilizavel. Resposta correta: b) O padrao Factory Method permite criar objetos sem precisar especificar a classe exata do objeto que sera instanciado. Em vez disso, ele delega essa responsabilidade para subclasses, promovendo flexibilidade e desacoplamento no codigo. Qual e o objetivo principal do padrao "Observer"? a) Garantir que um objeto tenha apenas uma instancia. b) Permitir que objetos se inscrevam e sejam notificados sobre mudancas em outro objeto. c) Organizar a criacao de objetos de uma classe. d) Modularizar o comportamento de um objeto. Resposta correta: b) O padrao Observer permite que objetos se inscrevam e recebam notificacoes sobre mudancas de estado em outro objeto, promovendo uma relacao de dependencia entre eles. Isso e util em cenarios onde varias partes de um sistema precisam ser atualizadas quando um evento ocorre. Qual padrao de design e usado para combinar objetos em uma estrutura de arvore? a) Composite b) Proxy c) Iterator d) Facade Resposta correta: a) O padrao Composite permite combinar objetos em uma estrutura de arvore, onde os objetos individuais e os compostos (conjuntos de objetos) podem ser tratados da mesma forma. Esse padrao e util para representar hierarquias de objetos, como sistemas de arquivos ou estruturas de menus. Qual e o padrao de design usado para fornecer uma interface simplificada a um conjunto de interfaces complexas? a) Adapter b) Facade c) Proxy d) Decorator Resposta correta: b) O padrao Facade fornece uma interface simplificada para um conjunto de interfaces complexas. Ele oculta a complexidade do sistema e fornece uma maneira mais facil de interagir com subsistemas complexos. O que caracteriza o padrao de design "Decorator"? a) Ele permite adicionar funcionalidades a um objeto de forma dinamica e flexivel. b) Ele e utilizado para criar objetos de forma flexivel. c) Ele tem como objetivo dividir responsabilidades de forma hierarquica. d) Ele altera a interface de um objeto sem modificar a classe original. Resposta correta: a) O padrao Decorator permite adicionar funcionalidades a um objeto de forma dinamica e flexivel, sem alterar a classe original do objeto. Isso e util para estender comportamentos sem precisar modificar o codigo base. Qual padrao de design pode ser utilizado para simplificar a criacao de objetos complexos, como ao construir um documento HTML? a) Singleton b) Builder c) Prototype d) Strategy Resposta correta: b) O padrao Builder e utilizado para criar objetos complexos passo a passo, como no caso de documentos HTML, onde e necessario construir o objeto por partes, de forma controlada e modular. Qual e o principal objetivo do padrao "Strategy"? a) Substituir um objeto por outro, dependendo do contexto. b) Definir um conjunto de algoritmos e torna-los intercambiaveis. c) Organizar a criacao de objetos de maneira eficiente. d) Encapsular a construcao de um objeto complexo. Resposta correta: b) O padrao Strategy permite definir um conjunto de algoritmos, encapsula-los e torna-los intercambiaveis. Com isso, e possivel escolher o algoritmo adequado em tempo de execucao, promovendo flexibilidade e facilidade de manutencao. Qual e o padrao de design utilizado para criar uma copia exata de um objeto sem que o objeto original seja modificado? a) Singleton b) Prototype c) Factory Method d) Adapter Resposta correta: b) O padrao Prototype e usado para criar uma copia exata de um objeto, sem que o objeto original seja alterado. Ele e util quando e necessario criar multiplas instancias de um objeto com base em um modelo existente. O que caracteriza o padrao "Proxy"? a) Ele define um objeto que controla o acesso a outro objeto. b) Ele organiza a criacao de objetos de uma classe de maneira eficiente. c) Ele cria um unico objeto compartilhado por todas as instancias. d) Ele encapsula comportamentos complexos em uma classe. Resposta correta: a) O padrao Proxy define um objeto que controla o acesso a outro objeto, geralmente para realizar operacoes como controle de acesso, cache ou outras acoes antes de delegar a chamada ao objeto real. Em qual situacao o padrao "Chain of Responsibility" seria mais apropriado? a) Quando e necessario criar objetos flexiveis sem uma classe especifica. b) Quando e necessario passar uma solicitacao para uma sequencia de objetos, cada um tendo a opcao de processa-la ou passar para o proximo. c) Quando se deseja encapsular um algoritmo dentro de um objeto. d) Quando se deseja organizar a criacao de objetos de maneira hierarquica. Resposta correta: b) O padrao Chain of Responsibility e ideal quando e necessario passar uma solicitacao para uma sequencia de objetos, onde cada objeto tem a opcao de processa-la ou passa-la adiante, sem acoplamento direto entre os objetos. Qual e o padrao de design utilizado quando se deseja permitir que objetos de diferentes tipos sejam tratados de forma uniforme? a) Composite b) Adapter c) Visitor d) Iterator Resposta correta: c) O padrao Visitor permite que objetos de diferentes tipos sejam tratados de forma uniforme, aplicando uma operacao a eles sem alterar suas classes. Ele e util quando se deseja realizar operacoes em um conjunto de objetos de tipos diferentes. O que caracteriza o padrao "State"? a) Permite que o comportamento de um objeto seja alterado em tempo de execucao, dependendo do seu estado interno. b) Facilita a troca de comportamentos de objetos em diferentes contextos. c) Mantem o estado global do sistema. d) Garante que um objeto tenha apenas uma instancia. Resposta correta: a) O padrao State permite que o comportamento de um objeto seja alterado em tempo de execucao, dependendo do seu estado interno. Isso facilita a implementacaode objetos que podem se comportar de maneira diferente dependendo do contexto. Qual e a funcao do padrao "Mediator"? a) Facilitar a comunicacao direta entre objetos de forma desacoplada. b) Encapsular algoritmos dentro de objetos. c) Organizar a criacao de objetos complexos. d) Permitir que os objetos se comuniquem diretamente, sem intermediarios. Resposta correta: a) O padrao Mediator facilita a comunicacao entre objetos, centralizando a interacao em um unico ponto, de forma desacoplada. Isso reduz as dependencias entre objetos e melhora a