Prévia do material em texto
Padrões de projeto (Design Patterns) Perguntas de Multipla Escolha sobre Padroes de Projeto (Design Patterns) O que sao padroes de projeto (design patterns)? a) Sao solucoes especificas para problemas tecnicos que surgem durante a implementacao do software. b) Sao descricoes gerais e reutilizaveis para problemas comuns de design, que podem ser aplicadas em diferentes contextos. c) Sao os detalhes de implementacao que orientam o desenvolvimento de novas funcionalidades. d) Sao metodos exclusivos para resolver problemas relacionados a seguranca no sistema. Resposta correta: b) Explicacao: Padroes de projeto sao solucoes reutilizaveis para problemas recorrentes que surgem no design de software. Eles nao sao solucoes completas, mas sim descricoes de boas praticas que podem ser adaptadas conforme o contexto. Qual e a principal vantagem de usar padroes de projeto? a) Tornar o codigo mais complexo e dificil de entender. b) Ajudar a criar solucoes padronizadas e facilitar a comunicacao entre os desenvolvedores. c) Garantir que todos os projetos tenham a mesma estrutura de codigo. d) Reduzir o numero de funcionalidades implementadas no software. Resposta correta: b) Explicacao: Usar padroes de projeto facilita a comunicacao entre os desenvolvedores, cria solucoes mais eficientes e reutilizaveis, alem de permitir que problemas recorrentes sejam resolvidos de maneira sistematica. Qual padrao de projeto e utilizado quando e necessario garantir que uma classe tenha apenas uma unica instancia durante a execucao do programa? a) Factory Method b) Singleton c) Observer d) Decorator Resposta correta: b) Explicacao: O padrao Singleton assegura que uma classe tenha apenas uma instancia ao longo da execucao do programa, controlando a criacao de objetos e proporcionando um ponto unico de acesso a essa instancia. Quando utilizar o padrao "Factory Method"? a) Quando e necessario criar uma unica instancia de uma classe. b) Quando o tipo de objeto a ser criado nao e conhecido ate o momento de execucao. c) Quando o sistema precisa ser altamente modular e livre de heranca. d) Quando a aplicacao precisa de um mecanismo de comunicacao entre objetos. Resposta correta: b) Explicacao: O Factory Method e utilizado quando o tipo de objeto a ser criado nao e conhecido ate o momento da execucao, permitindo que o codigo cliente defina a classe de objetos a serem instanciados de forma flexivel. Qual padrao de design e usado para permitir que um objeto seja observado por outros objetos sem acoplamento direto entre eles? a) Proxy b) Strategy c) Observer d) Command Resposta correta: c) Explicacao: O padrao Observer permite que um objeto notifique outros objetos sobre mudancas no seu estado sem que esses objetos estejam diretamente acoplados, promovendo um baixo acoplamento entre os componentes. Qual e a principal caracteristica do padrao de projeto "Decorator"? a) Permite a criacao de novos objetos a partir de objetos existentes, adicionando funcionalidades de forma dinamica. b) Garante que um objeto seja instanciado apenas uma vez. c) Facilita a comunicacao entre diferentes modulos de um sistema. d) Impede que objetos sejam modificados durante a execucao do programa. Resposta correta: a) Explicacao: O padrao Decorator permite adicionar novas funcionalidades a objetos de forma flexivel, sem alterar o codigo original do objeto, criando novas versoes do objeto dinamicamente. O que caracteriza o padrao de projeto "Strategy"? a) Ele e usado para delegar a responsabilidade de criar objetos a outras classes. b) Permite que diferentes algoritmos sejam encapsulados e usados de maneira intercambiavel. c) Garante que o codigo cliente tenha acesso a uma instancia unica de um objeto. d) Facilita a troca de comportamentos do sistema sem alterar o codigo cliente. Resposta correta: b) Explicacao: O padrao Strategy permite que diferentes algoritmos sejam encapsulados em classes distintas e usados de maneira intercambiavel, oferecendo flexibilidade para alterar o comportamento do sistema sem modificar o codigo cliente. Quando utilizar o padrao "Abstract Factory"? a) Quando e necessario criar uma familia de objetos relacionados sem especificar suas classes concretas. b) Quando se deseja criar um unico objeto em todo o sistema. c) Quando um objeto precisa ser substituido dinamicamente sem alterar seu tipo. d) Quando o comportamento de um objeto deve variar em tempo de execucao. Resposta correta: a) Explicacao: O padrao Abstract Factory e utilizado para criar familias de objetos relacionados sem especificar suas classes concretas. Ele permite que o sistema seja independente da forma de criacao dos objetos. Qual e a principal caracteristica do padrao de projeto "Adapter"? a) Ele permite que duas interfaces incompativeis se comuniquem sem alterar o codigo original. b) Ele e utilizado para criar objetos sem a necessidade de uma classe base. c) Ele adiciona funcionalidades a objetos de maneira flexivel e dinamica. d) Ele define como os objetos de um sistema devem ser instanciados. Resposta correta: a) Explicacao: O padrao Adapter permite que duas interfaces incompativeis se comuniquem, adaptando uma interface para que seja compativel com outra, sem a necessidade de modificar o codigo das classes originais. O que significa "acoplamento" no contexto de padroes de design? a) A medida de como os componentes de um sistema sao independentes entre si. b) A quantidade de funcionalidades que um modulo pode oferecer. c) A dependencia entre os componentes, ou seja, como eles interagem e se influenciam. d) O numero de classes que um padrao de design pode criar. Resposta correta: c) Explicacao: O acoplamento se refere a dependencia entre os componentes do sistema. Em padroes de design, o objetivo e minimizar o acoplamento para promover maior flexibilidade e facilitar a manutencao e evolucao do sistema. Qual padrao de design e utilizado quando e necessario adicionar comportamento a um objeto de forma transparente, sem modificar sua estrutura? a) Proxy b) Facade c) Decorator d) Iterator Resposta correta: c) Explicacao: O padrao Decorator permite adicionar comportamento a um objeto de forma flexivel, sem alterar sua estrutura original, decorando o objeto com novas funcionalidades. Qual e a principal vantagem de utilizar o padrao "Facade"? a) Tornar o sistema mais complexo ao agregar muitas funcionalidades em uma unica classe. b) Fornecer uma interface simplificada para um conjunto complexo de subsistemas. c) Resolver problemas de performance no sistema. d) Permitir que os objetos interajam diretamente com o banco de dados. Resposta correta: b) Explicacao: O padrao Facade oferece uma interface simplificada para um conjunto complexo de subsistemas, facilitando a interacao com sistemas complexos sem expor sua complexidade ao cliente. O que e o padrao "Composite" e quando ele deve ser utilizado? a) Ele permite criar objetos que podem ser usados de forma recursiva, como arvores de objetos. b) Ele e utilizado para substituir o uso de heranca em sistemas complexos. c) Ele oferece uma solucao para objetos que precisam de multiplos comportamentos. d) Ele simplifica a interacao entre objetos e o banco de dados. Resposta correta: a) Explicacao: O padrao Composite e usado para tratar objetos individuais e colecoes de objetos de forma uniforme, permitindo criar hierarquias de objetos compostos, como arvores de objetos, em que os elementos podem ser tratados da mesma maneira. Qual padrao de design deve ser utilizado quando e necessario que um objeto se comporte como um substituto de outro objeto, controlando o acesso a ele? a) Proxy b) Observer c) Builder d) Command Resposta correta: a) Explicacao: O padrao Proxy e utilizado para criar um objeto que age como substituto de outro objeto, controlando o acesso a ele e podendo adicionar funcionalidades como controle de acesso, cache ou controle de recursos. O padrao "Command" e utilizado quando: a) E necessarioexecutar acoes de forma assincrona. b) Os objetos precisam de uma interface para se comunicarem com o sistema de persistencia de dados. c) Deve ser permitido que uma solicitacao seja transformada em um objeto que encapsula uma acao e seus parametros. d) E necessario controlar o numero de instancias de objetos em um sistema. Resposta correta: c) Explicacao: O padrao Command encapsula uma solicitacao como um objeto, permitindo que parametros sejam passados e armazenados de maneira que possam ser executados posteriormente. Esse padrao e util em sistemas onde e necessario desacoplar o remetente da solicitacao e o receptor da acao. Qual padrao de design facilita a implementacao de uma sequencia de operacoes em objetos que podem ser armazenadas e recuperadas posteriormente? a)