Prévia do material em texto
1) Padrões de Software são soluções reutilizáveis para problemas reincidentes que ocorrem durante o desenvolvimento de softwares. Gamma, E. (2009). Associe as colunas e marque a alternativa correta: 1.Model, View, Control 2.Padrões Estruturais 3.Padrões Comportamentais 4.Padrões de Criação 5.Padrões GOF ( ) Abstraem o processo de instanciação; ( ) Estão divididos em três famílias; Pode diminuir potencialmente o desempenho: a cada camada, as representações dos objetos sofrem modificações, e essas modificações levam tempo para serem realizadas; ( ) Tratam das associações entre classes e objetos; ( ) Tratam das interações e divisões de responsabilidades entre as classes ou objetos; a) 4,5,1,2, 3 b) 4,1,5,3, 2 c) 5,1,3,4, 2 d) 1,5,2,3, 4 e) 5,1,3,2, 4 2) Analise as afirmativas abaixo: I. A ideia principal que é atribuída no conceito de Padrões de Projeto de Software é a "reutilização de ideias (soluções consolidadas) ... Não necessariamente de códigos." II. A utilização de padrões de projeto de software em um projeto de desenvolvimento de programas implica na reutilização de códigos prontos feitos por outros desenvolvedores (da empresa ou externos) com a finalidade de agilizar o processo de conclusão do software. III. Um projeto de desenvolvimento de software que segue padrões de projeto não necessita documentar aspectos recorrentes do desenvolvimento do software. IV. O MVC (Model-View-Controller), GoF (Gang of Four) e GRASP (General Responsibility Assignment Software Patterns) são exemplos de padrões de projeto de software. E assinale a única opção VERDADEIRA acerca das afirmativas acima. a) II e III são verdadeiras; b) Todas são falsas; c) I e IV são verdadeiras; d) Todas são verdadeiras; e) I, III e IV são verdadeiras. 3) Segundo Metsker, o padrão de projeto GOF _____________________ é aplicado para substituir a geração de instancias não-inicializadas de uma classe, fornecendo novos objetos a partir de uma classe-exemplo: a) FACTORY METHOD. b) PROTOTYPE. c) MEDIATOR. d) SINGLETON. e) BUILDER. 4) Considere as afirmativas abaixo sobre o padrão Prototype: I - Declara um método chamado clone na superclasse abstrata do modelo (Prototype). Em função desta declaração, cada classe concreta derivada deve ser capaz de gerar uma nova instância de si próprio. II - Entre as aplicações para este padrão de projeto está a facilidade de instanciar classes em tempo de execução. III - Quando as instâncias de uma classe apresentam poucas combinações de estados, pode ser mais conveniente definir previamente um conjunto de protótipos e cloná-los, sempre que for necessário. a) Todas as afirmativas estão corretas. b) II e III estão corretas e I está errada. c) I e III estão corretas e II está errada. d) I, II, III estão incorretas. e) I e II estão corretas e III está errada. 5) Qual padrão estrutural permite que um objeto utilize serviços de outros objetos com interfaces diferentes por meio de uma interface única? a) Facade b) Bridge c) Composite d) Adapter e) Flyweight 6) Programadores se deparam muitas vezes com situação onde é preciso acrescentar responsabilidades a objetos e não a classe. Uma alternativa é atribuir dinamicamente a um dado objeto. Este padrão é chamado de: a) Singleton. b) Instance. c) Prototype. d) Decorator. e) Bridge. 7) O padrão flyweight é um objeto compartilhado, que pode ser usado em vários contextos, simultaneamente, pois tem a capacidade de funcionar de forma independente em cada contexto. Seus métodos e implementações não podem, em momento algum, fazer ... a) Hipóteses ou asserções sobre fora do contexto no qual o objeto opera. b) Acoplamento fraco entre o subsistema e seus clientes. c) Hipóteses ou exclusões sobre o contexto no qual o objeto opera. d) Hipóteses ou asserções sobre o contexto no qual o objeto opera. e) Comparações ou associações sobre o contexto no qual o objeto opera. 8) O objetivo do padrão de projeto flyweight é diminuir o consumo de memória, porém deve ser utilizado com cautela; Gamma et al (2000) recomendam sua utilização somente quando todas as condições forem verdadeiras. Assinale dentre as opções abaixo a única condição que não é verdadeira: a) A aplicação não depende da identidade do objeto. b) Uma aplicação utiliza um pequeno número de objetos. c) Os custos de armazenamento são altos por causa da grande quantidade de objetos. d) Uma aplicação utiliza um grande número de objetos. e) Muitos grupos de objetos podem ser substituídos por relativamente poucos objetos compartilhados, uma vez que estados extrínsecos são removidos. 9) Analise as seguintes sentenças que descreve as características de um padrão de projeto. Em seguida marque a alternativa que corresponde o padrão de projeto correspondente: a- Sua aplicação é recomendada naquelas situações em que há necessidade de interpretar uma linguagem qualquer e, ao mesmo tempo, quando se quer representar sentenças da linguagem, como árvores abstratas sintáticas. b- Descreve como projetar um conjunto de classes para representar e interpretar uma gramática para linguagens simples. c- A estrutura do padrão sugere que a modelagem do problema seja realizada através de uma gramática recursiva. a) Adapter. b) Chain of responsibility. c) Interpreter. d) Composite. e) Facade. 10) A classe handler é uma classe abstrata, portanto, não pode ser instanciada diretamente. Assim, para montar uma cadeia de objetos é necessário especializá-la em que tipo de classes? Assinale dentre as opções abaixo aquela que está correta. a) Generalizada. d) Baixa Coesão. b) Alto Acoplamento. e) Concretas. c) Com método público. 11) O design Pattern que tem a finalidade de usar compartilhamento para suportar grandes quantidades de objetos, de granularidade fina, de maneira eficiente é denominado: a) Builder. b) Composite. c) Flyweight. * d) State. e) Strategy. 12) O padrão de projeto Singleton é usado para restringir: a) A quantidade de classes. b) Classes de atributos completos. c) A instanciação de uma classe para apenas um objeto. * d) A instanciação de uma classe para objetos simples. e) As relações entre classes e objetos. 13) Qual padrão compõe objetos em estruturas de arvores para representarem hierarquias partes-todo e permite aos clientes tratarem de maneira uniforme os objetos individuais e as composições de objetos? a) Nenhuma das anteriores. b) Flyweight. c) Builder. d) Composite. x e) Proxy. 14) Qual padrão está representado na figura abaixo: a) Facade. b) Composite. c) Proxy. d) Strategy. e) Bridge. X 15) Qual padrão usa compartilhamento para suportar eficientemente grandes quantidades de objetos de granularidade fina? a) Bridge. b) Composite. c) Nenhuma. d) Flyweight. x e) Facade. 16) Qual o objetivo do padrão Proxy? Assinale a opção correta. a) Proxy faz uma fachada única para todas as fachadas. b) Proxy oferece uma interface única para um conjunto de interfaces de um subsistema. c) Proxy define uma interface de nível mais elevado que torna o subsistema mais fácil de usar. d) Proxy expurga o código e delega a uma classe, a terceiros. e) Proxy promove um substituto ou ponto através do qual um objeto possa controlar o acesso a outro. X 17) Qual padrão define o esqueleto de um algoritmo em uma operação, postergando alguns passos para as subclasses e permite que subclasses redefinam certos passos de um algoritmo sem mudar a estrutura do mesmo? a) Nenhum das anteriores. b) Command. c) State. d) Adapter. e) Template Method. X 18) O padrão classe Handler é um padrão comportamental GoF. Qual afirmativa abaixo NÃO corresponde a esse padrão?a) Fornece um acoplamento mais fraco por evitar a associação explicita do remetente de uma solicitação ao seu receptor e dar mais de um objeto a oportunidade de tratar a solicitação; b) Encadeia os objetos receptores, passando a solicitação ao longo da cadeia até que um objeto a trate; c) Evita o acoplamento do remetente de uma solicitação ao seu receptor, ao dar mais de um objeto a oportunidade de tratar a solicitação; d) Representa um encadeamento de objetos receptores para o processamento de uma série de solicitações diferentes; e) A classe Handler é uma classe abstrata, portanto não pode ser instanciada diretamente. X 19) Conhecido como padrões da gangue dos quatro, por terem sido desenvolvidos por quatro autores, os Padrões GoF (Group of Four) estão divididos pelas seguintes famílias de padrões: Padrões de Criação ou de Construção, Padrões Estruturais e Padrões Comportamentais. Considerando os padrões de Criação ou de Construção, analise o modelo abaixo e em seguida marque a alternativa que define a representação. a) Builder. b) Mediator. c) Factory Method.x d) Singleton. e) Facade. 20) Os padrões de projeto podem ser categorizados em três grupos: criação, estruturais e comportamentais. São padrões do grupo estrutural e do grupo criação, respectivamente: a) Façade e Singleton. b) Builter e Abstract Factory. c) Singleton e Façade. d) Abstract Factory e Composite. e) Observer e Bridge. 21) Qual padrão especifica os tipos de objetos a serem criados usando uma instância-protótipo e cria novos objetos pela cópia desse protótipo? a) Singleton. b) Prototype. x c) Factory Method. d) Abstract Factory. e) Nenhuma das anteriores. 22) Qual padrão garante que uma classe tem somente uma instância e fornece um ponto global de acesso a mesma? a) Singleton. x b) Factory Method. c) Nenhuma das anteriores. d) Abstract Factory. e) Builder. 23) Dado o diagrama de classe identifique o padrão GoF estrutural: a) Flyweight b) Proxy c) Composite x d) Decorator e) Facade 24) Ao consultar informações a respeito dos padrões de projeto Adapter e Bridge, um Analista de Sistemas identificou uma afirmativa INCORRETA. Assinale-a. a) O foco do Adapter é a solução de incompatibilidades entre duas interfaces existentes. b) O Bridge estabelece uma ponte entre uma abstração e suas possíveis implementações. c) Ambos promovem a flexibilidade ao fornecer um nível de endereçamento indireto para outro objeto. d) O Adapter é inferior ao Bridge porque não evita a replicação de código. x e) Ambos são padrões estruturais que possuem alguns atributos em comum 25) Que padrão estrutural provê um ponto de atendimento para que outro possa controlar o acesso ao primeiro? a) Flyweight. b) Facade. c) Proxy. x d) Decorator. e) Adapter. 26) O presidente de uma empresa determinou que fosse disponibilizado um sistema de vendas na Internet. No entanto, o software de controle de estoque que deve ser acessado pela aplicação de vendas é muito antigo e provê uma API (Application Programming Interface) de uso muito complicado. Para que os desenvolvedores possam acessar uma interface mais simples, o arquiteto do sistema pode determinar o uso do padrão de projeto: a) Flyweight. b) Decorator. c) Prototype. d) Observer. e) Facade. X 27) Um arquiteto de softwares estuda que padrões de projeto são apropriados para o novo sistema de vendas de uma empresa. Ele deve considerar que o padrão: a) Singleton separa uma abstração de sua implementação, de modo que os dois conceitos possam variar de modo independente. b) Builder garante que uma classe seja instanciada somente uma vez, fornecendo também um ponto de acesso global. c) Chain of Responsibility evita o acoplamento entre o remetente de uma solicitação e seu destinatário, dando oportunidade para mais de um objeto tratar a solicitação. x d) Template Method utiliza compartilhamento para suportar, eficientemente, grandes quantidades de objetos de granularidade fina. e) Bridge separa a construção de um objeto complexo de sua representação, de modo que mesmo processo de construção possa criar diferentes representações. 28) A implementação do padrão de projeto Chain of Responsability requer que cada objeto receptor de uma determinada solicitação tenha uma lógica para descrever os tipos de solicitação que é capaz de processar e como passar adiante aquelas que requeiram processamento por outros receptores. A delegação das solicitações pode formar uma árvore de recursão, com um mecanismo especial para inserção de novos receptores no final da cadeia existente. Marque a alternativa que NÃO identifica uma vantagem do padrão de projeto Chain of Responsability. a) Padrão libera um objeto de ter que conhecer qual o outro objeto que trata de uma solicitação. b) Flexibilidade na atribuição de responsabilidades, ou seja, pode- se mudar a cadeia de objetos em tempo de execução, adicionando ou removendo objetos. c) Reduz a interconexão entre os objetos, ao invés de um objeto manter uma lista com todos os receptores candidatos, eles mantêm uma referência única para o sucessor; d) As partes invariantes, conforme a situação, contexto ou problema a ser resolvido, podem ser redefinidas em classes abstratas gerando interconexão entre os objetos. e) Remetente e receptor não têm conhecimento explícito um do outro. 29) Sobre o polimorfismo considere a figura abaixo e selecione a resposta totalmente correta: a) Define-se um método físico na classe PAI. Os métodos nas classes filho são definidos. Neste caso cada método é sobreposto. No caso de uma nova classe filho há necessidade obrigatória devido a estrutura PAI de se definir o método na nova classe. Isto é polimorfismo. b) Define-se vários métodos. Cada método deve ter uma estrutura IF...THEN...para cada situação. Isto é polimorfismo. c) Define-se uma estrutura de herança. Automaticamente fica definido uma estrutura de métodos. Isto é polimorfismo. d) Define-se um método na classe PAI. Este método é copiado nas classes que herdam a classe PAI. Isto é polimorfismo. e) Define-se um método abstrato, em uma classe abstrata. Cada classe que herda a classe abstrata implementa o método físico. Dependendo da classe instanciada é executado o método correspondente. Isto é polimorfismo. X 30) Analise as seguintes afirmações relacionadas a padrões de projetos: I. O padrão Builder separa a construção de um objeto complexo de sua representação, de modo a que o mesmo processo de construção possa criar diferentes representações. II. O método Abstract Factory fornece uma interface para a criação de uma família de objetos relacionados ou dependentes sem especificar suas classes completas. III. O padrão Bridge define uma interface para criar um objeto, mas deixa as subclasses decidirem que classe será instanciada. O Bridge permite a uma classe postergar a instanciação das subclasses. IV. O Chain of responsability usa compartilhamento para suportar grandes quantidades de objetos e define uma dependência um-para- muitos entre objetos, de modo que quando um objeto muda de estado, todos os seus dependentes são automaticamente notificados e atualizados. Indique a opção que contenha todas as afirmações verdadeiras. a) I e III. b) II e III. c) I e II. x d) II e IV. e) III e IV. 31) Assinale a afirmativa correta sobre o padrão Builder: a) Um dos principais objetivos do padrão Builder é separar o algoritmo de criação de um objeto complexo tanto da especificação, quanto das partes que o compõem.x b) Deve-se é separar no construtor da própria classe a lógica para criação de um objeto e concentrar a lógica de criação em uma hierarquia de herança.c) A legibilidade da solução final, ou seja, para entender como um objeto é criado e sob quais condições, fica comprometida. d) Deve-se é embutir no construtor da própria classe a lógica para criação de um objeto ou ainda distribuir a lógica de criação em vários métodos adicionais. e) É uma abordagem que não facilita a criação de objetos com diferentes configurações e representações, tornando o código dependente a complexidade das classes relacionadas. 32) Em muitas situações de programação, é possível resolver o problema de acesso a um determinado objeto com a utilização de uma referência a variável desejada, este é um mecanismo de simples utilização e bastante conhecido pelos desenvolvedores de software. No entanto, quando é necessário utilizar um mecanismo mais versátil e sofisticado, por exemplo: - para postergar a instanciação de um objeto - para controlar o acesso ao mesmo - para acessá-lo em uma máquina remota - para gravá-lo em uma base de dados, a alternativa de utilizar uma referência ao objeto não é mais apropriada. - utilização de uma superclasse abstrata para definir a interface da classe desejada e uma classe derivada adicional derivada. Marque a alternativa que indica o padrão de projeto utilizado segundo a descrição acima. a) Proxy. x b) Facade. c) Flyweight. d) Coesão. e) Acoplamento. 33) O método Arrays.sort (java.util) recebe como parâmetro um objeto do tipo Comparator que implementa um método compare(a, b) e utiliza-o para definir as regras de ordenação, assim evitamos duplicidade de código permitindo sobrescrita apenas do critério de comparação do algoritmo de ordenação, no qual os outros passos permanecem invariantes. Essa situação exemplifica qual dos padrões GOF abaixo: a) State. b) Template Method. c) Builder. d) Flyweight. e) Command. * 34) Qual das afirmativas não é verdadeira? a) Um acoplamento definido para que classes que contenham métodos que possibilitem alterações de requisitos deve ser a menor possível, desta forma se favorece futuras manutenções. b) O ideal que dois artefatos tenham alta dependência. Isto garante um bom desempenho e facilita a manutenção dos artefatos. x c) Acoplamento é o grau de dependência entre dois artefatos. É uma medida de quão forte um elemento está conectado ou tem conhecimento de, ou depende de outros elementos. d) Dessa forma o padrão Acoplamento Baixo é utilizado para atribuir responsabilidades de modo que o acoplamento permaneça baixo. e) Um alto acoplamento aumenta a dificuldade de entendimento da solução proposta, a diminuição das chances de reutilização, além de aumentar a complexidade da aplicação. 35) Marque a alternativa que representa o padrão GRASP que está relacionada com a seguinte questão: Como distribuir responsabilidades buscando alcançar Coesão Alta ou Acoplamento Baixo? a) Variações protegidas. b) Indireção. c) Invenção Pura. x d) Polimorfismo. e) Controlador. 36) Padrões arquiteturais definem os componentes estruturais de um sistema, e a forma de comunicação entre eles ou com outros sistemas, organizando as regras gerais para a concepção de aplicativos com algum perfil funcional específico. Plataformas de objetos distribuídos, como o CORBA, trabalham em um padrão arquitetural denominado: a) Pipeline b) Event-Driven c) MVC d) PAC e) Broker x 37) Uma mudança essencial no modelo de programação Java, com a evolução do JEE, foi o uso de anotações nas diversas tarefas de configuração dos EJBs do aplicativo. Para que serve a anotação Local no ambiente de criação de EJBs? a) Definir a interface de acesso local ao pool de EJBs. x b) Definir a interface de acesso às entidades do JPA. c) Definir um contexto de persistência local para o Session Bean. d) Definir um Stateful Session Bean. e) Definir um Stateless Session Bean. 38) Suponha que existam diferentes algoritmos para resolver um problema, sendo que cada algoritmo se aplica melhor a um contexto específico (ex: volume maior ou menor de dados, frequência de modificações e de consultas). Esse padrão sugere resolver o problema encapsulando cada algoritmo em uma classe distinta, que implementa uma interface padrão utilizada pelos módulos clientes desses algoritmos. Assinale a alternativa com o nome do padrão que possui o propósito descrito no enunciado: a) Mediator b) Chain of Responsibility c) Strategy x d) Command e) Memento 39) Na implementação desse padrão, cada objeto de uma estrutura hierárquica deve definir uma operação Accept, que recebe um objeto de uma classe X como parâmetro. A classe X, por sua vez, implementa uma interface genérica Z, definindo uma operação específica de tratamento para cada tipo de objeto que pertença à estrutura hierárquica. Assinale a opção com o nome do padrão cuja estrutura de solução foi descrita no enunciado. a) Template Method b) State c) Strategy d) Observer e) Visitor x 40) Que padrão pode ser utilizado para garantir que apenas uma instância de uma fábrica (Abstract Factory) seja criada na execução de um processo? a) Abstract factory. b) Builder. c) Prototype. d) Singleton.x e) Factory Method. 41) Os iteradores de coleção em Java obtidos a partir da interface Collection são implementados com a aplicação de qual padrão de projeto? a) Abstract Factory b) Factory Method x c) Singleton d) Prototype e) Builder 42) Assinale o padrão que utiliza uma fábrica de objetos de modo a gerenciar a instanciação e o compartilhamento de objetos imutáveis utilizados em larga escala em um sistema: a) Adapter b) Flyweight x c) Proxy d) Facade e) Composite 43) Você está desenvolvendo um sistema que precisa se integrar com diferentes sistemas de despacho de produtos fornecidos por terceiros. Seu objetivo é isolar os módulos clientes das implementações específicas fornecidas pelos terceiros. Para isso, você define uma interface genérica do serviço de despacho que abstrai essas diferentes implementações, e cria pequenos módulos que traduzem essa interface genérica nas chamadas específicas requeridas pela interface de cada sistema disponibilizado pelos terceiros. Assinale a alternativa com o nome do padrão que corresponde a essa estratégia de solução: a) Adapter x b) Bridge c) Composite d) Proxy e) Facade 44) Assinale a alternativa com a afirmação CORRETA sobre o padrão Controlador. a) O módulo Controlador centraliza o código relacionado à lógica de negócio do sistema ou de um caso de uso. b) O módulo Controlador coordena e controla os módulos responsáveis pela produção da resposta a eventos lógicos de sistema gerados pela camada de interface com o usuário. x c) O módulo Controlador centraliza a interação do usuário com o sistema, capturando os eventos externos e controlando o fluxo de navegação das telas e janelas do sistema. d) Em uma aplicação Java web, o módulo controlador pode ser implementado como um servlet. e) O padrão Controlador proposto pelo GRASP equivale ao padrão GoF Strategy. 45) Assinale a alternativa com o nome do padrão GRASP que recomenda que uma responsabilidade seja atribuída à classe que possua o conhecimento necessário para realizá-la, evitando, assim, a definição de classes de negócio somente com operações de acesso, isto é, operações get/set dos seus atributos. a) Memento. b) Fábrica. c) Controlador. d) Indireção. e) Especialista na Informação. X 46) A arquitetura oferecida pelo JPA modificou a forma do Java lidar com os dados, e o conhecimento acerca de suas características é fundamental para todo programador que utilize a plataforma. Assinale a alternativa INCORRETA acerca do JPA: a) Precisa de um arquivo de configuraçãodenominado persistence.xml. b) Trabalha com código anotado Java. c) É o mecanismo padrão de ORM do Java. d) Com a adoção do JPA eliminamos a necessidade do JDBC. x e) Permite mapear os relacionamentos da base de dados. 47) Os EJBs do tipo Session Bean podem ser divididos em três perfis, sendo que um deles permite a ocorrência de apenas uma instância por máquina virtual, viabilizando o compartilhamento de dados de forma global, entre todos os aplicativos do servidor. Qual é o perfil do EJB descrito? a) Message Driven Bean b) Stateless c) Entity d) Stateful e) Singleton x 48) Suponha que existam diferentes algoritmos para resolver um problema, sendo que cada algoritmo se aplica melhor a um contexto específico (ex: volume maior ou menor de dados, frequência de modificações e de consultas). Esse padrão sugere resolver o problema encapsulando cada algoritmo em uma classe distinta, que implementa uma interface padrão utilizada pelos módulos clientes desses algoritmos. Assinale a alternativa com o nome do padrão que possui o propósito descrito no enunciado: a) Mediator b) Memento c) Chain of Responsibility d) Command e) Strategy x 49) Sobre o padrão Observer, assinale a alternativa correta: a) Permite o acesso sequencial a objetos organizados em uma coleção, sem expor a representação interna dessa coleção. b) É frequentemente utilizado na implementação de interfaces gráficas complexas, em que uma fonte de informação precisa estar sincronizada com diferentes visualizações apresentadas simultaneamente para o usuário. x c) O conceito de polimorfismo não está presente na solução proposta pelo padrão. d) Define uma cadeia de objetos responsáveis pelo processamento de uma requisição, em que cada objeto da cadeia é responsável por observar eventos gerados por um elemento central, realizar algum processamento e notificar o próximo objeto da sequência para continuar o processamento. e) É responsável por observar e promover as mudanças de estado de um objeto que possui um ciclo de vida complexo. 50) Analise a estratégia de solução a seguir: ''Definir um construtor private e implementar uma operação estática que retorna uma instância criada em uma operação com escopo static e armazenada como um atributo static dentro da própria classe''. Assinale a alternativa com o nome do padrão que define essa estratégia: a) Builder b) Abstract Factory c) Singleton x d) Prototype e) Factory Method 51) Sobre o padrão Abstract Factory, assinale a alternativa correta: a) Seu propósito é abstrair o processo de construção de um objeto complexo formado por vários passos. b) O construtor de cada fábrica deve ser definido como private. c) Sua implementação requer a definição de uma operação chamada clone em cada fábrica concreta. d) Sua implementação pode envolver a aplicação do padrão Factory Method. X e) Uma fábrica pode criar apenas um tipo de produto. 52) Fornecer aos clientes um objeto intermediário com uma réplica da interface do objeto fornecedor que contém os métodos que realmente serão executados. Esse objeto intermediário delega as requisições dos clientes para o fornecedor, como ocorre, por exemplo, quando clientes e fornecedores são objetos distribuídos em máquinas diferentes. Assinale a alternativa com o nome do padrão com esse propósito: a) Facade b) Decorator c) Adapter d) Flyweight e) Proxy x 53) Um amigo seu está desenvolvendo um sistema com dezenas de casos de uso. Esse sistema pode ser usado em uma interface web e em um aplicativo móvel. Você o aconselha a criar uma classe para cada caso de uso que ficará responsável por receber os eventos lógicos recebidos dessas interfaces e coordenar a produção das respostas que o sistema deve produzir para esses eventos. Assinale a alternativa com o nome do padrão GRASP descrito na recomendação descrita: a) Mediador. b) Criador. c) Polimorfismo. d) Controlador. x e) Indireção. 54) Analise as sentenças sobre padrões de projeto de software e, em seguida, assinale a alternativa correta: I. Permitem descrever fragmentos de projeto e reusar ideias de projeto: II. Dão nome e forma a procedimentos abstratos, regras e melhores práticas relativas às técnicas orientadas a objetos: III. Ajudam a escolher alternativas de projeto que tornam um sistema reutilizável. a) Apenas II e III estão corretas b) Apenas I e III estão corretas c) Apenas I e II estão corretas d) Todas estão corretas e) Apenas II está correta. 55) Sobre o padrão Command: I - É ideal para acessar elementos de coleções, matrizes ou estruturas de dados encadeados II - A vantagem desta abordagem é que o objeto que está realizando a chamada do método não precisa saber nada sobre seu funcionamento. III - Este padrão de projeto oferece uma maior flexibilidade na arquitetura do sistema, uma vez que permite a adição de novas funcionalidades (comandos) sem a necessidade de mudar a arquitetura. podemos afirmar: As afirmativas I, II, estão corretas afirmativa III está errada. As afirmativas I, III, estão corretas e II errada. As afirmativas I, II, III estão incorretas. As afirmativas I, II, III e IV estão corretas. As afirmativas II, III estão corretas e a afirmativa I está errada. 56) Um dos princípios do padrão de arquitetura MVC é a separação da lógica da apresentação do modelo. PORQUE É, muitas vezes, mais prático manter a visão e o controlador unificados, inclusive, por demandas da tecnologia. Analisando-se as afirmações acima, conclui-se que ... a) As duas afirmações são verdadeiras, e a segunda não justifica a primeira. b) A primeira afirmação é verdadeira, e a segunda é falsa. c) As duas afirmações são falsas. d) A primeira afirmação é falsa, e a segunda é verdadeira. e) As duas afirmações são verdadeiras, e a segunda justifica a primeira. 57) Para fazer a modelagem de um padrão de projeto (design pattern) utilizando a UML É DESNECESSÁRIO. a) Identificar as soluções comuns para o problema básico. b) Fazer a modelagem do mecanismo como uma colaboração, fornecendo seus aspectos estruturais, assim como os aspectos comportamentais. c) Entender o padrão de projeto como uma colaboração representada com suas partes estruturais e comportamentais. d) Identificar as soluções específicas e particulares para o problema básico e retificá-la como um mecanismo. e) Identificar os elementos do padrão de projeto que devem ser vinculados aos elementos em um contexto específico e representá-los como parâmetros para colaboração. 58) O padrão Variações protegidas tem como característica: a) É um princípio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em um projeto orientado a objetos, tais como: variações nos dados, comportamento, hardware, componentes de software, sistemas operacionais, entre outros. b) Implica que um componente ou classe encapsule somente os atributos e operações muito relacionadas a si e com a classe do componente ou classe propriamente dito. c) Sugere atribuir um conjunto de responsabilidades altamente coesas a uma classe artificial ou de conveniência que não represente o domínio do problema, algo inventado, para apoiar coesão alta, acoplamento baixo e reuso. d) É o primeiro objeto além da camada de interface com o usuário que é responsável por receber ou tratar uma mensagem de operação do sistema. e) O objetivo é atribuir responsabilidade a um objeto intermediário para servir como mediador entre outros componentes ou serviços, para que eles não sejam diretamente acoplados. 59) ITERATOR: Fornecer uma maneira de acessar sequencialmente os elementos de um objeto agregado sem expor sua implementação. (Gamma et al., 2000). Sobre este padrão de projetospodemos afirmar com certeza: a) É bastante utilizado em programação de sistemas para gerenciar a comunicação entre dois ou mais objetos b) Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de implementação c) É bastante utilizado em programação de sistemas para gerenciar a comunicação entre dois ou mais objetos, mas não deve ser usado quando associado a percorrer arrays ou tabelas. d) Considerando objetos que implementam arrays, pode ser visto como uma classe intermediária de comunicação e gerenciamento, evitando que os objetos se comuniquem de forma direta e) Tem uma grande facilidade de mudança de comportamento, pode-se alterar seu funcionamento sem que seja necessária nenhuma mudança nas demais classes envolvidas, desde que envolvam coleções e matrizes.