Baixe o app para aproveitar ainda mais
Prévia do material em texto
Análise e Projeto de Sistemas II Exercícios 1) Qual padrão de projeto (design pattern) permite adicionar um comportamento a um objeto já existente em tempo de execução? a) Façade. b) Composite. c) Decorator. d) Abstract Factory. e) Business Delegate. Suponha que exista uma interface ITraduzFrase que define o método imprimeFrase(). Existem, também, as classes InglesTraduzFrase, EspanholTraduzFrase e AlemaoTraduzFrase que estendem a interface ITraduzFrase e utilizam o método imprimeFrase(). Um Analista utilizou um design pattern que cria objetos de forma dinâmica sem conhecer a classe de implementação. A classe FrasePadrao implementa esse padrão de forma que, de acordo com o idioma desejado, retorna um objeto do tipo ITraduzFrase. O objetivo é que, sendo fornecido o idioma, a frase será nele impressa, em inglês, espanhol ou alemão. 2) Considerando o exemplo e sabendo que a definição do padrão é "Define uma interface para criar um objeto, mas permite às classes decidirem qual classe instanciar. Este padrão permite a uma classe deferir a instanciação para subclasses.", o nome do padrão usado pelo Analista é a) Strategy. b) Factory Method. c) Singleton. d) Chain of Responsability. Adapter.Padrão de projeto é uma técnica que permite reutilizar em seu projeto soluções utilizadas anteriormente em outros sistemas. 3) Considere as seguintes afirmativas a respeito dos padrões de projeto Facade (Fachada) e Composite. i) Uma das consequências negativas do padrão Facade é que ele aumenta o acoplamento entre os subsistemas no qual é aplicado. ii) O padrão Facade define uma interface única para acesso a um subsistema, tornando mais fácil a utilização de seus serviços. iii) No padrão Composite, objetos que representam composições e objetivos primitivos são tratados (chamados) de forma idêntica pelo cliente. iv) O padrão Composite permite variar dinamicamente a quantidade de objetos primitivos, mas não de objetos composite. Estão corretas as afirmativas a) I e III b) I e IV c) II e III d) II e IV Padrão de projeto é uma técnica que permite reutilizar em seu projeto soluções utilizadas anteriormente em outros sistemas. 4) Considere as afirmativas presentes no quadro abaixo a respeito dos padrões de projeto Adapter e Observer: i) Uma das implementações do padrão Adapter é realizada através do uso do mecanismo de herança múltipla. ii) O padrão Observer é usado para permitir que mudanças no estado de vários objetos sejam repassadas para objetos observadores interessados. iii) O padrão Adapter permite que o cliente troque os objetos Adapter e Adaptee dinamicamente. iv) O padrão Observer define a quantidade de objetos observadores (Observer) de um dado assunto (Subject) em tempo de inicialização do programa. Estão corretas as afirmativas a) II e IV b) I e IV c) II e III d) I e III O padrão Layer (Camadas) é um padrão arquitetural que pode ser usado para organização dos subsistemas de um sistema de software. 5) Considere as seguintes afirmativas a respeito do Padrão Layer (Camadas): i) O Padrão Layer permite substituição completa de qualquer uma de suas camadas. ii) O Padrão Layer (Camadas) define a estruturação de um sistema em várias camadas organizadas em uma pilha, onde camadas superiores oferecem serviços para as camadas inferiores. iii) O Padrão Layer pode trazer problemas de desempenho devido à necessidade de processar cada requisição ao sistema através de diferentes camadas. iv) As camadas definidas no padrão Layer são: Interface do usuário (GUI), Autenticação/Autorização, Negócio (Business) e Dados (Data). Estão corretas as afirmativas a) II e III. b) I e IV. c) I e III. d) II e IV. 6) Um Padrão de Projeto de Software ou Padrão de Desenho de Software, também muito conhecido pelo termo original em inglês, Design Pattern, descreve uma solução geral reutilizável para um problema recorrente no desenvolvimento de sistemas de software orientados a objetos. Não é um código final; é uma descrição ou modelo de como resolver o problema do qual trata, que pode ser usada em muitas situações diferentes. Os Padrões de Projeto normalmente definem as relações e interações entre as classes ou objetos, sem especificar os detalhes das classes ou objetos envolvidos, ou seja, estão num nível de generalidade mais alto. Um padrão de projeto define: seu nome; o problema; a solução; quando aplicar esta solução e suas consequências. O movimento ao redor de padrões de projeto ganhou popularidade com o livro Design Patterns: Elements of Reusable Object- Oriented Software, publicado em 1995. Os autores desse livro, Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, são conhecidos como a "Gangue dos Quatro" (Gang of Four) ou simplesmente "GoF". Os Padrões GOF, são organizados em três famílias, qual das alternativas a seguir apresenta a denominação dessas três famílias: a) Criação, estruturais e comportamentais; b) Criação, arquiteturais e desenvolvimento; c) Desenho, estruturais e desenvolvimento; d) Definição, arquitetura e desenvolvimento; e) Definição, estruturais e comportamentais. 7) Um Analista de Sistemas necessita utilizar alguns padrões de projeto para solucionar determinados problemas. De acordo com as Categorias de Padrões do Gang of Four− GoF, ele vai utilizar um padrão de cada uma das três categorias, pela ordem, a saber: − Padrões de Criação − Padrões Estruturais − Padrões Comportamentais Em relação a essas três categorias, os padrões são, respectivamente, a) Strategy, Template Method e Decorator. b) Factory Method, Flyweight e Memento. c) Bridge, Prototype e Composite. d) Abstract Factory, Singleton e Observer e) Façade, Proxy e Iterator. Padrão de projeto é uma técnica que permite reutilizar em seu projeto soluções utilizadas anteriormente em outros sistemas. 8) Considere as seguintes afirmativas a respeito do padrão Singleton. i) O padrão Singleton pode ser usado para determinar uma quantidade fixa de instâncias de uma classe que podem ser criadas em uma aplicação. ii) A classe que implementa o padrão Singleton deve manter público seus construtores. iii) A implementação comum do padrão Singleton funciona em ambientes multi-threads. iv) O padrão Singleton é implementado através de atributos e métodos estáticos na classe onde é aplicado. Estão corretas as afirmativas a) I e IV. b) I e III. c) II e III. d) II e IV. Padrão de projeto é uma técnica que permite reutilizar em seu projeto soluções utilizadas anteriormente em outros sistemas. 9) Considere as afirmações a seguir, acerca dos padrões de projeto Template Method, Adapter e Facade. i) O padrão Template Method faz uso do mecanismo de delegação para implementar um algoritmo. ii) O padrão Template Method permite variar partes de um algoritmo e é implementado por meio de extensão de classes abstratas. iii) O padrão Facade contribui para o aumento do acoplamento entre subsistemas. iv) O padrão Adapter pode ser implementado através de herança múltipla. Estão corretas as afirmações a) III e IV. b) I e II. c) I e III. d) II e IV. Padrão de projeto é uma técnica que permite reutilizar em seu projeto soluções utilizadas anteriormente em outros sistemas. 10) Considerando o padrão de projeto Estratégia (Strategy), é correto afirmar que a) uma das consequências positivas desse padrão é que ele reduz a quantidade de classes. b) as classes participantes desse padrão são cliente (Client) e estratégia (Strategy). c) o padrão permite a implementação de estratégias usando comandos condicionais. d) o padrão Strategy permite a definição e o encapsulamento de uma família de algoritmos Padrão de projeto é uma técnica que permite reutilizar em seu projeto soluções utilizadas anteriormente em outros sistemas. 11) Analise as seguintes afirmativas a respeito da técnica padrão de projeto. i) Cada padrão de projeto oferece código-fonte que mostra como utilizar bibliotecasde classes diretamente em sua aplicação. ii) Cada padrão de projeto busca resolver um problema recorrente de projeto de software oferecendo uma solução concreta dentro de um contexto específico. iii) Todo padrão de projeto permite flexibilizar um determinado aspecto da sua aplicação. iv) Padrões de projeto representam um vocabulário comum que facilita a comunicação e a documentação do projeto. Estão corretas as afirmativas a) II e IV. b) I e II. c) I e III. d) III e IV. 12) Considere o trecho de código ilustrado a seguir: O trecho de código em questão ilustra uma implementação do padrão de projeto: a) Builder. b) Adapter. c) Singleton. d) Prototype. e) Composite. 13) Sobre padrões de projeto é correto afirmar que: a) São considerados padrões estruturais: Adapter, Bridge e Builder. b) São considerados padrões de criação: Abstract Factory, Prototype e Composite. c) Os padrões "GoF" são organizados em 3 famílias : Padrões de criação, Padrões estruturais e Padrões arquiteturais. d) Os padrões ajudam a tornar a arquitetura de um framework adequada a aplicações diferentes, minimizando a necessidade de modificações. e) Um padrão de projeto descreve a arquitetura de um sistema orientado a objetos, os tipos de objetos e as interações entre os mesmos. Ele pode ser vislumbrado como o esqueleto – template – de uma aplicação que pode ser customizado pelo programador e aplicado a um conjunto de aplicações de um mesmo domínio. 14) Com relação ao padrão de projeto Command, é correto afirmar que: a) O padrão Command é um padrão de projeto classificado como de propósito estrutural e com escopo de classe, possibilitando a execução independente das solicitações realizadas. b) Como a solicitação é encapsulada em um objeto, não é possível implementar o cancelamento das operações, visto que não é possível identificar o que foi feito antes da chamada. c) O padrão Command permite que os comportamentos de um objeto sejam definidos em tempo de execução, permitindo uma maior flexibilidade no desenvolvimento de sistemas dinâmicos. d) Um dos usos frequentes do padrão Command é quando existe a necessidade de se manter somente uma instância de determinada classe no sistema, controlando as operações que serão realizadas com ela. e) O objetivo da utilização do padrão Command é fazer o encapsulamento de uma solicitação em um objeto, possibilitando que um comportamento seja chamado sem saber nada sobre qual operação deverá ser executada. 15) Sobre os padrões de projeto, é correto afirmar que: a) Com o padrão Decorator, responsabilidade são estaticamente adicionadas ao objeto. Tais responsabilidade são definidas em tempo de compilação. b) O padrão de projeto Template Method especifica a estrutura de algoritmo dentro de um método, onde algumas etapas desse algoritmo são definidas nas subclasses. c) No padrão Observer, quando o objeto observador (Observer) sofre alguma alteração, o objeto observado (Subject) é notificado para realizar o processamento adequado. d) Com o padrão Facade é possível acessar os componentes de um sistema complexo a partir de diversas interfaces diferentes, obtendo o acesso direto a componentes internos do sistema. e) O padrão Iterator fornece uma forma de acessar os elementos de uma estrutura de dados a partir da análise interna da estrutura utilizada para armazenar os objetos, sendo necessário conhecer o seu funcionamento. 16) Os padrões de projetos podem ser classificados de acordo com o propósito (criacional, estrutural ou comportamental) e escopo (Classe ou Objeto). Dessa forma, qual dos seguintes padrões do GoF (Gang of Four) tem o propósito estrutural e o escopo de Objeto? a) State b) Memento c) Prototype d) Decorator e) Abstract Factory Considere o seguinte cenário: Em um sistema em desenvolvimento, existe a necessidade de que quando um determinado objeto sofra alguma alteração, um outro grupo de objetos seja notificados de forma a realizarem o processamento adequado. Esse grupo de objetos interessado na ação é dinâmico, sendo necessário que seja feita a solicitação de inclusão ou remoção do grupo. 17) Baseado nesse cenário, qual padrão de projeto GoF deverá ser utilizado? a) Visitor b) Observer c) Prototype d) Command e) Decorator 18) Qual dos seguintes itens contém apenas padrões de projeto GoF ('Gang of Four') do tipo padrões estruturais? a) Façade, Composite, Proxy. b) Factory Method, Flyweight, Bridge. c) Proxy, Abstract Factory, Composite. d) Façade, Composite, Factory Method. e) Decorator, Template Method, Façade. 19) Considerando os padrões de projeto do GoF, assinale a afirmação verdadeira. a) O padrão Strategy utiliza uma estrutura em árvore para representar as possíveis estratégias de implementação de um determinado problema. b) O padrão Adapter captura técnicas para suporte ao acesso e percurso de estruturas de objetos sem expor sua representação interna. c) O padrão Proxy introduz um nível de referência indireta no acesso a um objeto. d) O padrão Builder agrega responsabilidade dinamicamente a um objeto com a intenção de construir um objeto composto. 20) Em relação aos Padrões de Projeto, é correto afirmar: a) O Adapter permite que classes com interfaces incompatíveis trabalhem em conjunto. b) O Bridge permite compor objetos em estruturas de árvore para representar hierarquias todo-parte. c) O Singleton desacopla uma abstração de sua implementação. d) O Observer define uma interface para criar um objeto. e) O Factory Method possibilita anexar responsabilidades adicionais a um objeto dinamicamente. 21) Considere que você é o responsável pela especificação da arquitetura de software de um sistema de computação que está sendo desenvolvido pela empresa em que você trabalha. Considere que existe nesse sistema um requisito que indica que cada requisição do cliente deve ser processada para fins de autenticação e controle de acesso. Você sabe, pela sua experiência como arquiteto de software, que replicar essa lógica em todas as páginas ou em todos os servlets da aplicação não é uma boa solução, sobretudo do ponto de vista de manutenção do sistema. Utilizando o conhecimento que você possui sobre o catálogo de padrões J2EE, assinale a opção que indica o padrão de projeto Java que é indicado por esse catálogo para atender ao requisito descrito acima, evitando assim o problema de replicação do código. a) Front Controller. b) Context Object. c) Service Concentrator. d) Composite View. e) Intercepting Filter. 22) Relacione os padrões de projeto listados a seguir aos seus respectivos propósitos. 1. Mediator 2. Observer 3. Facade ( ) Define uma relação de dependência de um ou mais objetos em relação a um determinado objeto x, de forma que quando houver uma mudança no estado de x, todos os objetos dependentes de x sejam notificados e atualizados automaticamente. ( ) Define uma interface unificada e de mais alto nível a um conjunto de interfaces de um subsistema, facilitando o uso desse subsistema. ( ) Promove o baixo acoplamento entre um conjunto de objetos, definindo um objeto que encapsula a interação entre os objetos desse conjunto de modo a evitar que haja referências diretas entre eles. Assinale a opção que apresenta a relação correta, segundo a ordem apresentada. a) 1 – 2 – 3. b) 1 – 3 – 2. c) 2 – 1 – 3. d) 2 – 3 – 1. e) 3 – 2 – 1. 23) Qual das alternativas a seguir NÃO contém um elemento essencial de padrões de projeto, segundo a definição clássica GoF? a) Nome que seja uma referência significativa para o padrão. b) Descrição do problema que explique quando o modelo pode ser aplicado. c) Descrição da solução, ou seja, um modelo para uma solução de projeto que pode ser implementado de diferentes maneiras. d) Declaração das consequências – resultados e compromissos – da aplicação do padrão. e) Mecânica para a implementação passo a passo do padrão. 24) Bridge, TemplateMethod e Singleton podem ser utilizados durante o projeto de software orientado a objetos, sendo denominações de a) padrões de análise (analysis patterns). b) normas de coesão de classes. c) padrões de projeto (design patterns). d) métricas específicas de software orientado a objetos. e) tipos de acoplamento. 25) Identifique a alternativa que apresenta um dos principais objetivos do padrão de projeto Bridge: a) Definir uma classe abstrata que especifica quais objetos devem ser instanciados; b) Desacoplar um conjunto de implementações do conjunto de objetos que a utilizam; c) Casar um objeto existente, fora de seu controle, com uma interface particular; d) Simplificar o uso de um sistema existente, definindo sua própria interface; e) Usar somente um subconjunto de um sistema completo; Como garantimos que uma classe tenha somente uma instância e que essa instância seja facilmente acessível? Uma variável global torna um objeto acessível, mas não impede você de instanciar múltiplos objetos. GAMMA, E. et al. Padrões de Projeto: Soluções reutilizáveis de software orientado a objetos. Porto Alegre: Bookman, 2000. 26) Em relação ao exposto e ao padrão de projeto Singleton, assinale alternativa que indica uma das vantagens do referido padrão. a) O padrão de projeto garante a existência de apenas um único objeto da classe em questão, disponibilizando um modo de acessá-la. b) O padrão aumenta a quantidade de variáveis globais no namespace em questão. c) Não é necessário implementar qualquer mecanismo de controle de instância do objeto. d) O padrão Singleton não apresenta uma interface simples, uma vez que a implementação dele não é trivial. e) O padrão faz necessário o uso de variáveis globais. 27) No tocante ao padrão de projeto Decorator, também conhecido como Wrapper, assinale a alternativa correta. a) O citado padrão resulta em implementações menos flexíveis do que a herança estática. b) O Decorator adiciona responsabilidades a um objeto dinamicamente, de modo que constitui uma alternativa à prática da implementação de subclasses. c) Os objetos resultantes da implementação de um Decorator possuem diversas diferenças, porém as formas como eles se conectam são as mesmas. d) Uma das vantagens de sistemas implementados no referido padrão é que eles possuem diversos objetos parecidos. e) O mencionado padrão de projeto não permite adicionar responsabilidades extras ao objeto desejado. 28) Com base nas classificações de padrões de projeto de acordo com o respectivo propósito, assinale a alternativa correta. a) Padrões temporais são aqueles que garantem a chamada dos métodos de cada classe nos instantes apropriados. b) Padrões estruturais lidam com a composição de classes ou objetos, bem como com a própria criação. c) Padrões comportamentais caracterizam a forma como objetos ou classes interagem entre si e distribuem responsabilidades. É o que ocorre, por exemplo, com o padrão Prototype. d) Padrões criacionais se limitam a descrever o processo de criação de um objeto. e) Padrões aquisitivos descrevem a forma como os parâmetros de cada método e o valor de cada atributo de uma classe são adquiridos. 29) Uma programadora precisa mudar a implementação chamada de uma função em tempo de execução dependendo da entrada de dados. Um dos requisitos importantes é ocultar do usuário desta função a exposição das estruturas de dados complexas, específicas do algoritmo. Entre os conhecidos padrões de Projeto de Software Gang of Four (GoF,1994), qual é o indicado? a) Builder. b) Strategy. c) Façade. d) Template Method. 30) Assinale a alternativa que preenche de forma correta as lacunas da frase abaixo. O padrão de projeto _______________ fornece um substituto para outro objeto, a fim de controlar o acesso a ele, e o padrão de projeto _______________ define uma dependência de um para muitos entre objetos, de modo que, quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente. a) Proxy – Observer b) Decorator – Composite c) Mediator – Observer d) Proxy – Composite e) Decorator – State 31) O padrão de projetos chain of responsability é a) um padrão arquitetural. b) utilizado, quando o objeto que trata a solicitação deve ser escolhido automaticamente. c) utilizado, quando especificamos explicitamente o receptor. d) um padrão com alto acoplamento. e) um padrão GoF estrutural. 32) No que diz respeito a padrões de projetos, assinale a alternativa que apresenta somente padrões estruturais. a) Adapter, Bridge, Command, Decorator e Template. b) Adapter, Command, Flyweight, Observer e Proxy. c) Composite, Decorator, Singleton, Template e Proxy. d) Bridge, Composite, Decorator, Facade e Proxy. e) Bridge, Command, Flyweight, Observer e Singleton. 33) Permite elaborar uma interface para criação de famílias de objetos relacionados ou interdependentes, que não especifica suas classes concretas. A partir desse padrão consegue-se criar fábricas concretas, que são responsáveis pela criação de novos objetos para atender as necessidades do cliente. Portanto, essa prática ajuda a excluir a dependência entre o cliente e a classe dos objetos usados por ele. Assinale a alternativa que se refere ao padrão de projeto descrito no texto. a) Singleton. b) Builder. c) Prototype. d) Factory Method. e) Abstract Factory. 34) Factory Metho é um padrão de projeto a) estrutural com escopo de classe. b) de criação com escopo de classe. c) comportamental com escopo de objeto. d) estrutural com escopo de objeto. 35) O padrão de projeto comportamental que define uma dependência de um-para-muitos entre objetos de modo que, quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente é o a) Facade. b) Observer. c) Adapter. d) Abstract Factory. e) Prototype. 36) O modelo de requisitos define um conjunto completo de classes de análise. Cada uma descreve algum elemento do domínio do problema, focalizando os aspectos visíveis ao usuário ou ao cliente. O nível de abstração de uma classe de análise é relativamente alto. Conforme o modelo de projeto evolui, a equipe de software deve definir um conjunto de classes de projeto que sejam implementadas e criar um novo conjunto de classes de projeto que implemente uma infraestrutura de software que suporte a solução de negócio. NÃO fazem parte dos tipos de classes de projeto: a) Classes de sistema e classes persistentes. b) Classes de interface e classes de sistema. c) Classes de processo e classes de atributos. d) Classes do domínio de negócio e classes de sistema. 37) “Os padrões de projeto abrangem um amplo aspecto de abstração e aplicação. Os padrões de _________________ descrevem problemas de projeto de caráter amplo e diverso, resolvidos usando-se uma abordagem estrutural. Os padrões de ________________ descrevem problemas orientados a dados recorrentes e as soluções de modelagem de dados que podem ser usadas para resolvê-los. Os padrões de __________________ tratam de problemas associados ao desenvolvimento de subsistemas e componentes, a maneira através da qual eles se comunicam entre si e seu posicionamento em uma arquitetura maior. Os padrões de ________________ descrevem problemas comuns de interface do usuário e suas soluções.” Acerca dos padrões de projeto de software, assinale a alternativa que completa correta e sequencialmente a afirmativa anterior. a) dados / arquitetura / componentes / projeto de interfaces b) componentes / arquitetura / dados / projeto de interfaces c) arquitetura / dados / componentes / projeto de interfaces d) projeto de interfaces / arquitetura / dados / componentes 38) Acerca de um dos padrões de projeto, analise a seguinte afirmativa: “fornecer uma alternativa flexível ao uso de subclasses para extensão de funcionalidade e, dinamicamente, agregar responsabilidades adicionais a um objeto”. Trata-sedo padrão: a) Proxy. b) Visitor. c) Iterator. d) Decorator. 39) “Sua intenção é separar a construção de um objeto complexo da sua representação de modo que o mesmo processo de construção possa criar diferentes representações.” Trata-se do padrão: a) State. b) Bridge. c) Façade. d) Builder. 40) Em um projeto de sistemas deve-se considerar que mudanças podem ser necessárias ao longo de sua utilização. Padrões de projeto ajudam a evitar esses possíveis problemas, pois garantem que o sistema pode mudar segundo maneiras específicas. Em diversas causas comuns de reformulação de projetos, alguns padrões podem ajudar a tratar esses problemas. Um deles pode ser a dependência da plataforma de hardware e software. Assinale a alternativa que apresenta os padrões de projeto que tratam desse problema. a) Abstract Factory; Bridge. b) Builder; Iterator; Strategy. c) Composite; Decorator; Observer. d) Chain of Responsibility; Command. 41) Relacione adequadamente as colunas acerca do escopo de alguns dos padrões de projeto. 1. Classe. 2. Objeto. ( ) Bridge. ( ) Façade. ( ) Adapter. ( ) Observer. ( ) Interpreter. A sequência está correta em b) 2, 1, 1, 2, 1. c) 1, 2, 2, 1, 2. d) 2, 2, 1, 2, 1. e) 1, 2, 2, 2, 2. 42) Padrões de projetos podem ser classificados em dois critérios: escopo e finalidade. Escopo especifica se o padrão se aplica primariamente a classes e objetos, e finalidade reflete o que o padrão faz. Quanto à finalidade, os padrões podem ser classificados em três categorias. Assinale a INCORRETA. a) Criação. b) Estrutural. c) Reutilização. d) Comportamental. 43) Um padrão de projeto nomeia, identifica e abstrai os aspectos-chave de uma estrutura de projeto comum para torná-la útil para a criação de um projeto orientado a objetos reutilizável. Um padrão, em geral, possui quatro elementos essenciais; assinale-os. a) Solução; aplicação; abstração; e, reutilização. b) Problema; elementos; abstração; e, consequências. c) Consequências; aplicação; reutilização; e, problema. d) Nome do padrão; problema; solução; e, consequências. 44) O padrão de projeto do tipo comportamental conhecido como iterator a) agrega, de forma dinâmica, responsabilidades adicionais a um objeto. b) permite uma maneira de acessar, de forma sequencial, os elementos de um objeto agregado sem a exposição de sua representação subjacente. c) representa uma operação a ser executada nos elementos de uma estrutura de objetos. d) garante que uma classe deverá instanciar um único objeto e fornecer um ponto global de acesso a mesma classe. 45) Um exemplo de padrão de projeto do tipo criação é o a) composite. b) proxy. c) interpreter. d) prototype. 46) Considerando os padrões definidos pelo GoF (Gang of Four), assinale a opção correta. a) O padrão chain of responsibility é responsável por manter a independência entre os objetos receptor e solicitante na orientação a objetos. b) O padrão flyweight é utilizado quando é desejável que uma interface (abstração) possa variar independentemente de suas implementações. c) Os padrões GoF estão divididos nas categorias projetos de criação, projetos estruturais e projetos de transição. d) Os padrões abstract factory e singleton fazem parte da categoria projetos estruturais. O diagrama abaixo ilustra um dos padrões de projeto propostos pela Gang of Four. 47) Esse padrão de projeto denomina-se a) Factory method. b) Abstract factory. c) Template method. d) Prototype. e) Builder. 48) Sobre o padrão de projeto Composite, analise as afirmativas abaixo: i) Define hierarquias de classe que consistem de objetos primitivos e objetos compostos. ii) Útil para representar hierarquias partes-todo de objetos. iii) Torna mais fácil acrescentar novas espécies de componentes. Está CORRETO o que se afirma em a) I, apenas. b) II, apenas. c) I e II, apenas. d) I e III, apenas. e) I, II e III. 49) Sobre padrões de projeto, analise as afirmativas abaixo: i) É uma descrição de um problema e o cerne de sua solução, de forma que tal solução possa ser adaptada para resolver novos problemas. ii) Lidam com relacionamentos entre objetos que podem ser mudados, apenas, em tempo de compilação. iii) Um antipadrão tem como um de seus propósitos descrever uma solução ruim para um problema que resultou em uma situação ruim. Está CORRETO o que se afirma, apenas, em a) I. b) II. c) III. d) I e III. e) I e II. 50) Em aplicações para web orientadas a objeto, há um design pattern muito utilizado, (relacionado à arquitetura de sistemas) que possui um componente que: − Define o comportamento da aplicação. − Mapeia ações do usuário para classes que cuidam do acesso aos dados. − Seleciona páginas web para entregar resultados vindos das classes de acesso aos dados. O componente citado no texto acima é o a) Business. b) Controller. c) Persistence. d) Middle. e) Core. 51) Considere que é necessário fazer um programa que vá funcionar em várias plataformas, como Windows, Linux, Mac OS etc. O programa fará uso de diversas abstrações de janelas gráficas, por exemplo, janela de diálogo, janela de aviso, janela de erro etc. Um Analista sugeriu o uso de um padrão de projeto GoF estrutural que fornece um nível de abstração maior que o Adapter, pois são separadas as implementações e as abstrações, permitindo que cada uma varie independentemente. O padrão sugerido pelo Analista é o a) Bridge e as implementações seriam as classes de janela das plataformas. b) Prototype, pois especifica os tipos de plataformas a serem criadas usando uma instância protótipo e cria novas interfaces pela cópia desse protótipo. c) MVC, de forma que a camada Model fique responsável por acionar as janelas, a camada Controller exiba os dados do Model ao usuário e a camada View armazene as classes que fazem a comunicação com o Banco de Dados. d) Visitor e as interfaces seriam executadas nos elementos de cada plataforma. e) State, que permite a uma plataforma alterar o comportamento de sua interface 52) Suponha que em uma organização existe um conjunto de cargos e para cada cargo existem regras de cálculo da taxa de produtividade, cujo valor é determinado por uma porcentagem do salário base do funcionário. Este valor é acrescido ao salário do funcionário como um bônus. Um desenvolvedor deve criar uma solução que utilize um design pattern (padrão de projeto) cuja intenção é: “definir uma família de algoritmos, encapsular cada uma delas e torná-las intercambiáveis. O padrão de projeto permite que o algoritmo varie independentemente dos clientes que o utilizam”. Ou seja, o padrão sugere que algoritmos parecidos (métodos de cálculo da taxa de produtividade) sejam separados de quem os utiliza (funcionário). O padrão, além de encapsular os algoritmos da mesma família, também permite a reutilização do código. Nesta situação, caso a regra para cálculo da taxa de produtividade de dois tipos de funcionários, como Desenvolvedor e DBA, seja a mesma, não é necessário escrever código extra. Caso seja necessário incluir um novo cargo, basta implementar sua estratégia de cálculo da taxa ou reutilizar outra similar. Nenhuma outra parte do código precisa ser alterada. O design pattern mencionado na situação apresentada é a) Abstract Method. b) Builder. c) Prototype. d) Strategy. e) Singleton. 53) Com relação ao tema Padrões de Projeto, conforme descritos por Gamma et alli, sobre o padrão Prototype, analise as afirmativas a seguir. i) Apresenta como benefícios adicionais a adição e a remoção de produtos em tempo de execução. ii) Apresenta como benefícios adicionais a especificação de novos objetos pela variação de seus valores e/ou de sua estrutura. iii) Apresenta como benefícios adicionais a redução da necessidade de criação de subclasses. Assinale: a) se somente a afirmativa I estiver correta. b) se somente a afirmativa II estiver correta. c) sesomente a afirmativa III estiver correta. d) se somente as afirmativas I e II estiverem corretas. e) se todas as afirmativas estiverem corretas. 54) Nos padrões GoF, o padrão Builder é constituído, dentre os seus elementos, do “builder” e “concrete builder”. A diferença entre eles, respectivamente, é dada por qual alternativa? a) O primeiro especifica uma interface para um construtor de partes do objeto-produto, enquanto que o segundo constrói um objeto utilizando a interface do builder. b) O primeiro constrói um objeto utilizando a interface do concrete builder, enquanto que o segundo especifica uma interface para um construtor de partes do objeto-produto. c) O primeiro especifica uma interface para um construtor de partes do objeto-produto, enquanto que o segundo define uma implementação da interface builder além de manter a representação que cria e fornece a interface para recuperação do produto. d) O primeiro representa o objeto complexo acabado de construir e inclui classes que definem as partes constituintes, enquanto que o segundo especifica uma interface para um construtor de partes do objeto-produto. e) O primeiro define uma implementação da interface builder além de manter a representação que cria e fornece a interface para recuperação do produto, enquanto que o segundo representa o objeto complexo acabado de construir e inclui classes que definem as partes constituintes. 55) O Design Patterns tem o objetivo de escrever uma solução geral e reutilizável para o desenvolvimento de sistemas de software orientados a objetos. Um dos padrões é o “GoF” ( Gang of Four ). Sabendo disso, assinale a alternativa que apresenta as famílias do GoF. a) Padrões de Visão, Padrões Estruturais, Padrões de Controle. b) Padrões de Visão, Padrões de Refactoring, Padrões de Controle. c) Padrões de Criação, Padrões de Refactoring, Padrões Comportamentais. d) Padrões de Criação, Padrões Estruturais, Padrões Comportamentais. e) Padrões de Criação, Padrões Estruturais, Padrões de Controle. 56) A técnica de adaptação de um componente de software que encapsula o componente original e atual como filtro para requisições recebidas, determinando o comportamento do componente como desejado, é denominada a) proxy. b) wrapping. c) alteração de código. d) caixa-branca. e) herança. 57) Padrões de projeto nomeiam, explicam e avaliam um aspecto de projeto importante e recorrente em sistemas orientados a objetos. Avalie as características atribuídas a um padrão de projeto. i) Usado quando uma classe é usuária de uma certa hierarquia/ família de algoritmos, como um algoritmo de busca ou ordenação. ii) Esse padrão define uma família de algoritmos, encapsula cada um deles e os torna intercambiáveis. iii) Como existem diversos algoritmos em uma mesma família, não é desejável que se codifique todos eles em uma mesma classe. iv) Permite que um algoritmo varie, independentemente dos clientes que o utilizam. v) Fornece uma maneira de configurar uma classe com um dentre muitos comportamentos. vi) Pode ser usado para evitar a exposição das estruturas de dados específicas de um algoritmo, que se deseja ocultar. Essas características são do padrão de projeto a) Strategy. b) Adapter. c) Decorator. d) Abstract Factory. e) Template Method. 58) Os padrões arquiteturais descrevem a arquitetura, explicam quando elas podem ser usadas e discutem suas vantagens e desvantagens. Associe as colunas, relacionando os padrões arquiteturais aos cenários em que são geralmente utilizados. Padrões (1) Client-server (2) Pipe and filter (3) Layers (4) Model-ViewController (5) Repository Cenários ( ) Quando há necessidade de manter uma gerência centralizada de todos os dados, de modo que este seja acessível a todos os componentes do sistema, possibilitando uma interação indireta entre eles. ( ) Em aplicações de processamento de dados, em que as entradas são processadas em etapas separadas, nas quais os dados fluem de um componente para outro para processamento. ( ) Quando há possibilidade de incorporar novos requisitos não funcionais, como distribuição, segurança, persistência, entre outros, de modo a minimizar modificações no restante do sistema em razão da integração desse novo requisito. ( ) Quando há necessidade de que os dados sejam mantidos de maneira independente de sua apresentação, de modo que possam existir diversas maneiras de visualizar e interagir com os dados. ( ) Quando os dados compartilhados precisam ser acessados a partir de uma série de locais, podendo ser usados, também, quando a carga em um sistema é variável. A sequência correta dessa associação é a) 1, 3, 4, 2, 5. b) 2, 4, 1, 5, 3. c) 3, 1, 2, 5, 4. d) 4, 5, 3, 1, 2. e) 5, 2, 3, 4, 1. 59) A respeito de padrões de projeto, existem os padrões que descrevem maneiras comuns de organizar classes e objetos em um sistema e há aqueles que fornecem estratégias testadas para modelar a maneira como os objetos colaboram entre si em um sistema. Está-se falando, respectivamente, dos padrões de projeto a) criacionais e arquitetônicos. b) estruturais e de concorrência. c) organizacionais e comportamentais. d) criacionais e organizacionais. e) estruturais e comportamentais. 60) Assinale a opção que apresenta SOMENTE padrões de projeto criacionais. a) Prototype e Singleton b) Proxy e Singleton c) Command e Iterator d) Factory Method e Adapter e) Template Method e Abstract Factory 61) No desenvolvimento de uma API orientada a objetos, é comum reunir todas as suas funcionalidades em uma única classe, simplificando o acesso. Esta prática pode ser favorecida através da implementação do padrão de projeto. a) Proxy. b) Decorator. c) Singleton. d) Façade. e) Strategy. 62) Na literatura de engenharia de software, além dos padrões GRASP, é comum classificar os padrões de projeto em 3 tipos: padrões de criação, padrões estruturais e padrões a) comportamentais. b) de testes. c) de implantação. d) de análise. e) de visualização. 63) O padrão de projeto 'Command Processor' a) suporta tolerância a falhas, computação paralela e precisão computacional. b) ajuda a gerenciar todas as visões que um sistema de software provê. c) faz com que clientes de um componente se comuniquem com um representante em vez do próprio componente. d) provê uma comunicação entre processos transparente para sistemas de software com um modelo de interação ponto-a-ponto. e) separa a requisição por um serviço de sua execução. 64) Qual dos padrões arquiteturais abaixo é indicado para a estruturação de sistemas de software distribuído com componentes dissociados que interajam por invocação remota de serviços? a) Broker b) Microkernel c) Model-View-Controller d) Blackboard e) Reflection 65) Os três grupos distintos em que é organizado o padrão GoF são, assinale a alternativa correta: a) Criacionais, estruturais e comportamentais. b) Metodo, Classe e Mensagens. c) Classe, objeto e método. d) Comportamentais, Estado e Classe. 66) Assinale a alternativa que define corretamente o conceito de Design Patterns: a) “Uma solução para um problema dentro de um contexto”.<http://www.devmedia.com.br/design-patterns-introducao-parte-1/16780> acesso em 23 de janeiro de 2017. b) “Um procedimento padrão para resolver problemas anteriormente desconhecidos dentro de um contexto genérico” <http://www.devmedia.com.br/design-patterns-introducao-parte- 1/16780> acesso em 23 de janeiro de 2017. c) “Uma prática não estruturada para solução de problemas dentro de um determinado contexto” <http://www.devmedia.com.br/design-patterns-introducao-parte-1/16780> acesso em 23 de janeiro de 2017. d) “Uma solução para um problema independentemente de um contexto” <http://www.devmedia.com.br/design-patterns-introducao-parte-1/16780> acesso em 23 de janeiro de 2017. 67) Assinale a alternativa correta: a) SOLID é um acróstico e, cada letra está relacionadaa um princípio para programação e design orientado a objetos de autoria de Robert C. Martin. O Acrostico é formado pela inicial de Sistema, Objeto, Lógica, Informação e, Disign. b) SOLID é um acróstico e, cada letra está relacionada a um princípio para programação e design orientado a objetos de autoria de Robert C. Martin. c) SOLID é um acróstico formado pelas iniciais de SPR, OCP, LSP, ISP e DIP. É um conjunto consistente de princípios para modelagem matemática e computacional de sólidos tridimensionais. A modelagem sólida distinguese das áreas relacionadas de modelagem geométrica e computação gráfica por sua ênfase na fidelidade física. d) Em programação Orientada a Objetos É um conjunto consistente de princípios para modelagem matemática e computacional de sólidos tridimensionais. A modelagem sólida distingue-se das áreas relacionadas de modelagem geométrica e computação gráfica por sua ênfase na fidelidade física. 68) A adoção de padrões de projeto proporciona uma reutilização estratégica durante o desenvolvimento de software, uma vez que promove o reuso de soluções previamente validadas e notadamente bem conhecidas (reuso de rationale). A figura apresenta um diagrama de classes que modela o controlador responsável por controlar o nível de dificuldade de um jogo eletrônico. Vale salientar que o nível de dificuldade pode ser ajustado em tempo de execução, a partir do perfil de cada jogador. Assinale a alternativa que representa o padrão de projetos que foi utilizado no exemplo apresentado na figura. a) Observer, uma vez que o controlador precisa monitorar os níveis de dificuldade. b) State, uma vez que este padrão possui o propósito de facilitar mudanças dinâmicas na execução dos métodos c) Composite, pois os diversos níveis de dificuldade estão representados através de uma hierarquia bem definida. d) Chain of Responsability, uma vez que não se sabe a priori qual o nível de dificuldade que será utilizado, variando no decorrer da execução. e) Command, uma vez que cada nível de dificuldade representa um comando complementar do jogo, representando, assim, diferentes formas de acionar o jogo. 69) O padrão de projeto criado por John Goshmann MVVM, visa estabelecer uma clara separação de responsabilidades e tonar mais fácil a manutenção de um aplicativo. Assinale a alternativa correta referente a responsabilidade da ViewModel: a) Encapsula a lógica de negócio. b) É responsável por toda a lógica de validação. c) Apresenta os resultados do aplicativo. d) Disponibiliza para a View uma lógica de apresentação 70) O padrão GoF apresenta três grupos. Indique a alternativa cujo termo NÃO pertence ao GoF: a) Comportamentais. b) Operacionais. c) Estruturais. d) Criacionais. 71) Sobre os padrões de projeto para distribuição de responsabilidades, GRASP (General Responsability Assignment Software Patterns), analise as afirmativas. i) Polimorfismo (Polymorphism) – Problema: Como tratar alternativas com base em tipo? Solução: Quando alternativas ou comportamentos relacionados variam segundo o tipo (classe), atribua a responsabilidade pelo comportamento aos tipos para os quais o comportamento varia, usando operações polimórficas. ii) Especialista de Informação (Information Expert) – Problema: qual é o princípio geral de atribuição de responsabilidade a objetos? Solução: Atribua a responsabilidade ao especialista na informação, à classe que tem a informação necessária para satisfazer a responsabilidade. iii) Controlador (Controller) – Problema: qual é o primeiro objeto, além da camada de IU (interface de usuário), que recebe e coordena uma operação do sistema? Solução: Atribua a responsabilidade a uma classe que represente uma das seguintes escolhas: 1) o sistema global, um objeto raiz ou um dispositivo dentro do qual o software está sendo processado; 2) um cenário de um caso de uso dentro do qual ocorre o evento do sistema. Está correto o que se afirma em a) I e III, apenas. b) I, II e III. c) II e III, apenas. d) I e II, apenas. 72) Os Padrões de Projetos em Orientação a Objeto são arquiteturas utilizadas para desenvolver softwares orientados a objetos flexíveis e sustentáveis assim reduzindo sua complexidade. O modelo Singleton é utilizado para a) garantir que o objeto tenha apenas uma instância. b) remover um objeto da memória. c) instanciar o objeto quantas vezes for necessário. d) garantir a associação entre objetos. e) transformar o objeto em um método. Sobre padrões de projetos orientados a objetos (Design Pattern), analise os diagramas abaixo. 73) Assinale a alternativa que apresenta o padrão de projeto correspondente aos diagramas. a) Strategy b) Composite c) Abstract Factory d) Adapter 74) Observe as afirmativas abaixo: i) Com frequência, equipes de desenvolvimento de software escrevem classes que proveem funcionalidades similares às de outras classes já existentes. Esse padrão se aplica a qualquer contexto em que se deseja implementar funcionalidades já implementadas em outra classe, mas com interface diferente da classe já implementada. Esse padrão define uma nova classe de maneira que ela contenha uma instância da classe velha como um atributo privado, e implemente cada método da nova classe usando métodos da classe antiga. ii) Fornece uma interface unificada para um conjunto de interfaces em um subsistema. Define uma interface de nível mais alto que torna o subsistema mais fácil de ser usado. iii) Define o esqueleto de um algoritmo em uma operação, postergando alguns passos para as subclasses. Permite que subclasses redefinam certos passos de um algoritmo sem mudar a estrutura do mesmo. Esse padrão pode ser usado para implementar as partes invariantes do algoritmo uma só vez e deixar para as subclasses a implementação do comportamento que pode variar. iv) Evita o acoplamento do remetente de uma solicitação ao seu receptor ao dar a mais de um objeto a oportunidade de tratar a solicitação. Encadeia os objetos receptores, passando a solicitação ao longo da cadeia até que um objeto a trate. Esse padrão é utilizado quando mais de um objeto pode tratar uma solicitação e o objeto que a tratará não é conhecido a priori. O objeto que trata a solicitação é escolhido automaticamente. v) Você começou a trabalhar em um projeto que utiliza tecnologia Java RMI. Nesse projeto, é implementado um padrão de projeto que provê um ponto através do qual um objeto controla o acesso a outro. No projeto em questão, um objeto remoto que contém a implementação real é acessado através de um outro objeto local, de forma que o objeto local controla o acesso ao remoto. Para isso, ambos possuem a mesma interface. As afirmativas acima descrevem, respectivamente, os seguintes padrões de projeto: a) Adapter, Facade, Template Method, Chain of Responsibility e Proxy. b) Facade, Adapter Template Method, Chain of Responsibility e Decorator. c) Adapter, Facade, Decorator, Command e Adapter. d) Adapter, Facade, Template Method, Command e Interpreter. e) Memento, Strategy, Chain of Responsibility, Template Method e Memento. 75) Segundo Erick Gamma, com relação às consequências do uso do padrão de projeto Bridge, analise as afirmativas a seguir. i) Desacopla interface e implementação, permitindo que a implementação possa ser configurada em tempo de compilação, dessa forma o cliente não é afetado por uma eventual troca de implementação. ii) Melhora a extensibilidade, pois permite que a abstração e a implementação se expandam em hierarquias que são independentes uma da outra. iii) A estruturação em camadas é dificultada quando se estende a hierarquia da implementação sem que a da abstração a acompanhe. Assinale: a) se somente a afirmativa I estiver correta. b) se somente a afirmativa II estiver correta. c) se somente a afirmativa III estiver correta. d) se somente as afirmativas I e II estiverem corretas. e) se todas as afirmativas estiverem corretas.76) Considerando a descrição dos Padrões de Projeto Comportamentais, analise as afirmativas a seguir. i) Aplicados a classes, usam delegação para distribuir comportamento entre elas. ii) Aplicados a objetos, usam herança ao invés de composição de objetos. iii) Estão relacionados com algoritmos e atribuição de responsabilidades entre os objetos. Assinale: a) se somente a afirmativa I estiver correta. b) se somente a afirmativa II estiver correta. c) se somente a afirmativa III estiver correta. d) se somente as afirmativas I e II estiverem corretas. e) se todas as afirmativas estiverem corretas. 77) Os Padrões de Projeto de software são organizados em três famílias conforme a “Gangue dos Quatro” (Gang of Four). Dos “Padrões de Criação” abaixo, identifique qual deles não pertence a essa família especificamente: (1) Abstract Factory (2) Builder (3) Factory Method (4) Prototype (5) Proxy a) somente o 1 não pertence a essa família especificamente b) somente o 2 não pertence a essa família especificamente c) somente o 3 não pertence a essa família especificamente d) somente o 4 não pertence a essa família especificamente e) somente o 5 não pertence a essa família especificamente 78) Na hierarquia dos componentes visuais da biblioteca Java AWT (do inglês, Abstract Window Toolkit), há containers e componentes. Containers, tais como os representados pelas classes Frame, Panel, Dialog e Applet agregam outros componentes, tais como os representados pelas classes Button e Label. Um container pode também conter sub-containers. Logo, um container pode conter containers ou componentes.Oracle, 2016. Disponível em: <http://docs.oracle.com/javase/8/docs/technotes/guides/awt/ >. Acesso em: 30 jul. 2016. Na figura, é ilustrado, de forma resumida, o diagrama de classes dos componentes visuais AWT. Qual o padrão de projeto que representa a estrutura de relacionamento entre as classes? a) Strategy. b) Observer. c) Decorator. d) Composite. e) Chain of Responsability. 79) Considere os seguintes requisitos funcionais de um software de frente de caixa de uma sorveteria: i) ao selecionar um tipo qualquer de sorvete, pode-se adicionar vários condimentos a esse sorvete (tais como coberturas de diferentes sabores, granulados etc.) e o sistema deve calcular o valor total (sorvete + condimentos) dinamicamente ao fechar o pedido; ii) ao fechar o pedido, o sistema deve permitir adaptar o tipo de pagamento (cartão de crédito ou débito com desconto); iii) ao concluir o pedido, o sistema deve permitir que o valor total e a descrição do pedido sejam enviados a outros objetos (ou módulos) do sistema que estejam interessados nesses dados. Com base nos requisitos funcionais detalhados acima, qual dos padrões de projetos abaixo são adequados para resolver cada requisito funcional, respectivamente? a) Decorator, Adapter e Observer. b) Decorator, Strategy e Observer. c) Composite, Adapter e Observer. d) Composite, Strategy e Command. e) Composite, Singleton e Command. 80) A respeito de padrões de projeto (design pattern), é CORRETO afirmar que a) o padrão abstract factory é utilizado quando um sistema for independente da maneira como seus produtos são criados, compostos ou representados b) o padrão template method é utilizado com o intuito de definir uma interface que tem o objetivo de criar um objeto, embora deixe as subclasses decidirem que classe deve ser instanciada c) visitor, decorator e builder são exemplos de padrões de projeto comportamentais. d) prototype, singleton e bridge são exemplos de padrões de projeto estruturais e) o padrão observer é do tipo estrutural e define a estrutura de um algoritmo em uma operação, bem como passos para as subclasses. 81) Um desenvolvedor precisa utilizar um padrão de projeto para interceptar e manipular requisições HTTP de entrada de usuários ao sistema web, e respostas de saída através de filtros de pré-processamento e pós-processamento. Além disso, precisa utilizar outro padrão de projeto capaz de separar as regras de negócio da aplicação das regras de acesso ao banco de dados, permitindo assim centralizar em classes específicas, as operações de conexão ao banco de dados e realização de operações SQL. Os padrões de projeto que o desenvolvedor terá que utilizar são a) Front Controller e Data Transfer Object. b) Application Filter e Data Session Façade c) Intercepting Filter e Data Access Object. d) Controller Helper e Data Manager Object. e) Application Controller e Data Persistent Object. 82) A Engenharia de Software define padrões na construção de projetos, contribuindo para a melhoria de qualidade e confiabilidade, permite o reuso de componentes e a redução de custos e prazos. Sobre padrões de sistemas, assinale a afirmativa correta. a) No desenvolvimento de softwares, o reuso de componentes, objetos, funções e bibliotecas só se tornaram viáveis com a implantação de padrões e da orientação a objeto b) A customização de sistemas é uma das formas mais comuns de reuso de sistemas baseados em softwares pela adequação às características da organização. c) Os padrões de sistemas não estão relacionados às metodologias de modelagem, documentação e às tecnologias, apenas ao processo de codificação de programas. d) Design patterns definem elementos essenciais para a composição de um padrão que se aplica apenas à herança e polimorfismo em orientação a objetos. 83) Com base nos padrões de projeto de software, analise as afirmativas. i) I - O padrão GoF (Gang of Four) é dividido em quatro grupos: padrão de criação, padrão de estrutura, padrão de contexto e padrão de comportamento. ii) II - O padrão Singleton garante que apenas uma única instância de uma determinada classe seja instanciada durante a execução. iii) III - O padrão Iterator faz com que os acessos aos elementos de uma coleção de dados sejam realizados de forma sequencial. Está correto o que se afirma em a) I e II, apenas b) III, apenas c) II e III, apenas. d) I, II e III. 84) O catálogo denominado Padrões GoF (‘Gang of Four’) define soluções reutilizáveis para problemas frequentes em projetos de sistemas de software. Essas soluções estão organizadas em três famílias conforme o propósito de cada solução. Os padrões de projetos denominados Interpreter, Prototype e Flyweight que fazem parte desse catálogo, pertencem, respectivamente, às seguintes famílias: a) padrão comportamental, padrão de criação e padrão estrutural. b) padrão estrutural, padrão comportamental e padrão de criação. c) padrão comportamental, padrão estrutural e padrão de criação. d) padrão estrutural, padrão de criação e padrão comportamental. e) padrão de criação, padrão comportamental e padrão estrutural. 85) “Representa uma operação a ser executada sobre os elementos da estrutura de um objeto. Permite que se defina uma nova operação sem mudar as classes dos elementos sobre os quais opera.” Trata‐se do padrão de projeto a) Visitor. b) Proxy c) Decorator. d) Memento. e) Factory method. 86) Um padrão de projeto nomeia, abstrai e identifica os aspectos‐chave de uma estrutura de projeto comum para torná‐lo à criação de um projeto orientado a objeto reutilizável. Os padrões de projeto podem ser: estruturais, de criação e comportamentais. Assinale, a seguir, dois padrões estruturais. a) State / Builder. b) Bridge / Decorator. c) Iterator / Mediator. d) Strategy / Prototype. e) Command / Interpreter. 87) No contexto de padrões de projeto de software orientado a objetos, são padrões estruturais: a) Builder e Singleton. b) Adapter e Bridge. c) Interpreter e Iterator d) Observer e Mediator. e) Builder e Prototype. 88) O sistema de registro de ponto da CASAN está passando por melhorias e será necessário usar uma biblioteca externa que fornece outras classes e métodos para registrar o funcionário. A equipe de desenvolvimento decidiu, então, criar uma nova classe com um métodode registro do funcionário com a assinatura idêntica ao método antigo. Esse método encapsulará a chamada ao método da biblioteca externa, reduzindo assim o impacto da alteração no sistema. Qual dos padrões de projetos a seguir se enquadra nesse tipo de solução? a) Observer. b) Prototype. c) Decorator. d) Singleton. e) Adapter. 89) Erich Hamma, Richard Helm, Ralph Johson e John Vlissdes, mais conhecidos como “Gang of Four”, coletaram originalmente 23 Design Pattems (Padrões de Projeto) e organizaram em 3 grupos denominados: Assinale a alternativa correta. a) Startup Standards (Padrões de Inicialização) - Intermediate Patterns (Padrões Intermediários) - Finishing Standards (Padrões de Fiinalização). b) Interaction patterns (Padrões de Interação) - Beta Standards (Padrões Beta) - Finishing Standards (Padrões de Fiinalização). c) Creational Patterns (Padrões de Criação) - Structural Patterns (Padrões Estruturais) - Behavioral Patterns (Padrões Comportamentais). d) Users Patterns (Padrões de Usuários) - Creational Patterns (Padrões de Criação) - Interaction patterns (Padrões de Interação). e) Alpha Standards (Padrões Alfa) - Beta Standards (Padrões Beta) - Patterns Gamma (Padrões Gama). 90) Em projetos orientados a objetos (OO) em geral aplica-se padrões definidos para serem utilizados no desenvolvimento, como o GRASP, por exemplo. Esses padrões ou “patterns”, como são conhecidos entre os desenvolvedores e projetistas de sistemas, são definidos pela OO como a) o treinamento da equipe dentro dos padrões acordados com o cliente. b) a descrição de um problema e sua solução que pode ser aplicado a novos contextos. c) as especificações de reuso de código para a padronização das soluções do software. d) a documentação necessária para o entendimento do requisito e do projeto de software. e) os artefatos necessários para a construção de um software que favoreça a manutenção. 91) Dentre os tipos de Padrões de Projeto (Design Patterns) o que se caracteriza por definir uma interface para a criação de um objeto e que permite que a subclasse decida qual classe instanciar é denominado a) Factory Method. b) Builder. c) Prototype. d) Abstract Factory. e) Composite. 92) Definir o que é um padrão de projeto de maneira clara e objetiva tem sido o objetivo da comunidade de software, desde a década de 80. Assinale a alternativa que associa corretamente as definições a seguir com os padrões a que pertencem. i) Garantem que uma classe tenha somente uma instância e fornece somente um ponto de acesso à instância. ii) Define uma família de algoritmos, encapsula-os em objetos e torna-os intercambiáveis. Permite que se possam mudar os algoritmos independentemente de quem os está utilizando. a) I – Decorator; II – Façade b) I – Iterator; II – Proxy c) I – Proxy; II – Singleton d) I – Command; II – Strategy e) I – Singleton; II – Strategy 93) O padrão de projetos MVC (Model-View-Controller) tem como objetivo separar lógica de negócios (Model), interface do usuário (View) e o fluxo da aplicação (Control). O padrão MVC usa em sua arquitetura diversos outros padrões de projeto para atingir seu objetivo. Em MVC, as classes do Model não devem conhecer nada sobre as camadas de interface que exibem suas informações. O padrão de projeto utilizado pelo padrão arquitetural MVC que é responsável por fazer com que o Model informe mudanças em seu estado para as interfaces, sem conhecê-las, é o: a) façade; b) observer; c) singleton; d) Factory Method; e) composite. 94) Um Analista precisa construir uma aplicação que possui uma função da qual se conhece somente o algoritmo de execução, sendo que o trabalho de codificação para realização da operação desta função tem que ser postergado. Ele optou pelo uso do padrão de projeto comportamental a) Template Method, que permite implementar as partes invariantes de um algoritmo e deixar para subclasses a implementação da parte variante. b) Adapter, que cria classes reutilizáveis que cooperam com classes não relacionadas ou não previstas. c) Singleton, que possibilita o uso de uma instância estendida sem alterar o seu código. d) Abstract Factory, que permite criar uma biblioteca de classes de produtos e revelar somente suas interfaces, não suas implementações. e) Factory Method, que define uma interface para criar objetos, mas deixa que as subclasses decidam que classe instanciar. 95) Os padrões de projeto a) podem deixar um sistema mais complexo ou degradar a sua performance. O seu uso indevido ou inadequado para um determinado contexto constitui-se em um anti pattern. b) sempre criam flexibilidade e variabilidade pela introdução de níveis adicionais de endereçamento indireto. Como melhoram o desempenho do sistema devem ser sempre aplicados. c) comportamentais abstraem ou adiam o processo de criação dos objetos, ajudando a tornar o sistema dependente de como seus objetos são criados, compostos e representados. d) estruturais se concentram nos algoritmos de herança entre os objetos. Eles não descrevem apenas padrões de objetos ou de classes, mas também os padrões de comunicação entre os objetos. e) de criação se preocupam com a forma como classes e objetos são compostos para formar estruturas maiores. Utilizam o polimorfismo para compor interfaces ou implementações. 96) Segundo Gamma et al, em seu livro sobre Padrões de Projeto, o uso do padrão Memento apresenta as consequências listadas nas afirmativas a seguir. i) A adição e a remoção de produtos em tempo de execução. ii) A especificação de novos objetos pela variação de seus valores e/ou de sua estrutura. iii) A redução da necessidade de criação de subclasses. Assinale: a) se somente a afirmativa I estiver correta. b) se somente as afirmativas I e II estiverem corretas. c) se somente as afirmativas I e III estiverem corretas. d) se nenhuma das afirmativas estiver correta. e) se todas as afirmativas estiverem corretas. 97) O padrão de projeto MVVM foi proposto por John Grossman para simplificar o desenvolvimento de aplicações baseadas nas tecnologias WPF e Windows Phone. O MVVM foi desenvolvido como uma especialização do padrão: a) Model-View-Controller; b) Mobile-Interator Model; c) Presentation Model; d) Singleton Model; e) Decorator Model. 98) A empresa SOFTPRONTO foi contratada para desenvolver aplicativos de uma instituição financeira que possam ser executados em diferentes plataformas, como PC, celular e tablet. Para evitar a necessidade de criar diferentes soluções para cada plataforma, a empresa decidiu adotar um padrão de projeto que defina uma família de componentes para cada plataforma e uma implementação que os instancie de acordo com a plataforma-alvo na qual a aplicação estará sendo executada. O padrão adequado a essa implementação é: a) Prototype; b) Adapter; c) Template Method; d) Abstract Factory; e) Strategy. 99) O singleton é um padrão de projeto usado em orientação a objetos que limita a instanciação de uma classe a um único objeto. Analise a seguinte implementação de um singleton em Java: Considere as três afirmações seguintes acerca da implementação mostrada: i) a declaração do construtor da classe poderia ser omitida sem prejuízo do requisito de unicidade da instância; ii) a declaração do construtor da classe é indispensável, dado o requisito de unicidade da instância, porém o modificador private poderia ser omitido; iii) a instância única será construída quer a classe Singleton seja referenciada na aplicação quer não. Assinale se: a) I, II e III são verdadeiras; b) I e III são verdadeiras, II é falsa; c) I, II e III são falsas; d) I e II são verdadeiras, III é falsa; e) II e III são verdadeiras, I é falsa. 100) Considere a seguinte situação: Uma grande empresa possui uma rede de representação de seus produtos constituída por escritórios de venda em diversas cidades. Cada escritório possui um conjunto de vendedoresque vão até os varejistas oferecer os produtos. Varejistas podem estar em áreas populosas, como supermercados, ou em áreas remotas, como comércios de bairros rurais. Ao chegar no varejista, o vendedor utiliza um sistema fornecido pela empresa para registrar os pedidos de produtos. Na situação descrita, o objetivo é registrar os pedidos na base de dados da central de distribuição da empresa. Porém, por problemas de comunicação com a central, o computador portátil do varejista pode não conseguir conectar com a base central para registrar os pedidos. Se isso ocorrer, o sistema deve tentar salvá-los na base de dados do escritório. Quando a base do escritório também não estiver acessível, os pedidos deverão ser salvos na base de dados local, no próprio computador portátil do vendedor. Para estruturar a solução para o problema da empresa, o Analista de Sistemas utilizou um padrão de projeto que tem a intenção de evitar o acoplamento do remetente de uma solicitação ao seu receptor, ao dar a mais de um objeto a oportunidade de tratar a solicitação e encadear os objetos receptores, passando a solicitação ao longo da cadeia até que um objeto a trate. O padrão de projeto utilizado é um dos padrões comportamentais da GoF (Gang of Four), denominado a) Adapter. b) Composite Method. c) Chain of Responsibility. d) Factor Method. e) Prototype.
Compartilhar