Baixe o app para aproveitar ainda mais
Prévia do material em texto
1. Qual o objetivo dos Padrões Comportamentais? Assinale a opção CORRETA. Certo O objetivo dos Padrões Comportamentais têm a ver com a maneira pela qual responsabilidades são distribuídas a classes e objetos durante a realização de uma tarefa. 2. Assinale a alternativa que complete as afirmações abaixo: I. Os padrões ________________________ se preocupam com algoritmos e atribuição de responsabilidade entre objetos. II. Os padrões ________________________ se preocupam com a forma como as classes e objetos são compostos para formar estruturas maiores, ou seja, tratam como decompor classes e objetos para formar estruturas grandes e complexas. III. Os padrões _________________________ abstraem o processo de instanciação. Ajudam a tornar um sistema independente de como seus objetos são criados, compostos e representados. Certo comportamentais; estruturais; criacionais 3. 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. Certo Todas as sentenças estão corretas 4. considere a afirmativa de Gamma e Al. citada abaixo e escolha a opção correta: - Em geral, todas as arquiteturas orientadas a objeto bem-estruturadas estão cheias de padrões. Uma das maneiras de medir a qualidade de um sistema orientado a objetos é avaliar se os colaboradores tomaram bastante cuidado com as colaborações comuns entre seus objetos. Focalizar em tais mecanismos durante o desenvolvimento de um sistema pode levar a uma arquitetura menor, mais simples, muito mais compreensível do que aquelas produzidas quanto padrões são ignorados Certo Padrões são boas práticas e proporcionam garantia de qualidade na elaboração do código 5. (ESAF - 2005) 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 especifi car suas classes completas. III. O padrão Bridge defi ne 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. Certo I e II 6. (Casa da Moeda - CESGRANRIO 2009) Em determinado sistema de análise estatística, é necessário definir uma dependência ¿um para muitos¿ entre objetos, de forma que quando um objeto mudar de estado, todos os seus dependentes sejam notificados e atualizados. Que padrão de projeto pode ser utilizado nessa situação? Certo Observer 7. (ESAF - 2005 - Receita Federal - Auditor Fiscal da Receita Federal - Área Tecnologia da Informação) 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 especifi car suas classes completas. III. O padrão Bridge defi ne 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. Certo I e II 8. Um desenvolvedor de sistema computacional programou as seguintes classes abaixo: CÓDIGO EM JAVA Classe Geometria: public abstract class Geometria { private Figura objeto; public abstract void criaObjeto(); public Figura getObjeto() {return objeto;} } Classe GeoCirculo: public class GeoCirculo extends Geometria { private final double r; public GeoCirculo (double r) {this.r = r;} @Override public void criaObjeto() { this.objeto = new Circulo(r);} } Classe GeoQuadrado: public class GeoQuadrado extends Geometria { private final double l; public GeoQuadrado(double l) {this.l = l;} @Override public void criaObjeto() {this.objeto = new Quadrado(l);} } Classe GeoTriangulo: public class GeoTriangulo extends Geometria { private final double a, l; public GeoTriangulo(double a, double l) { this.a = a; this.l = l; } @Override public void criaObjeto() {this.objeto = new Triangulo(a, l);} } Classe Figure: public abstract class Figura { public abstract double area(); } Classe Circulo: public class Circulo extends Figura{ private double raio; public Circulo (double raio) {this.raio = raio;} @Override public double area() {return Math.pow(raio,2)*3.14159;} public double getRaio() {return raio;} public void setRaio(double raio) {this.raio = raio;} } Classe Quadrado: public class Quadrado extends Figura { private double lado; public Quadrado(double lado) {this.lado = lado;} @Override public double area() {return Math.pow(lado, 2);} public double getLado() {return lado;} public void setLado(double lado) {this.lado = lado;} } Classe Quadrado: public class Triangulo extends Figura { private double altura, largura; public Triangulo (double altura, double largura) { this.altura = altura; this.largura = largura; } @Override public double area() {return (altura*largura)/2;} public double getAltura() {return altura;} public void setAltura(double altura) {this.altura = altura;} public double getLargura() {return largura;} public void setLargura(double largura) {this.largura = largura;} } Analisando o que foi codificado pelo desenvolvedor podemos averiguar que ele utilizou um modelo dos padrões de projeto GoF (Gang of Four) pertencente a categoria dos padrões de criação. Baseado nesse contexto, assinale abaixo a única opção que informa corretamente qual foi o modelo dos padrões GoF de criação empregado no desenvolvimento das classes JAVA apresentada anteriormente: Certo Factory Method (Método de fabricação). 1. Sobre padrão, o que podemos afirmar: Certo Definimos como maneira testada ou documentada de alcançar um objetivo qualquer, e é muito utilizado em varias áreas da engenharia. 2. Qual padrão é de arquitetura? Certo MVC 3. Segundo Metsker, a classificação dos padrões GoF se divide em: Certo Interface, construção, responsabilidade, operações e extensões 4. Considere as seguintes assertivas sobre as vantagens do uso de Padrões de Projeto (Design Patterns): I. Padrões de projeto proporcionam um vocabulário comum de projeto, facilitando comunicação, documentação e aprendizado dos sistemas de software. II. Padrões de projeto auxiliam no desenvolvimento de software por meio da reutilização do projeto de soluções computacionais já testadas e aprovadas.III. Uma biblioteca de padrões pode ajudar a melhorar e padronizar o desenvolvimento de software. As assertivas corretas são: Certo I, II e III. 5. Esses são padrões de projeto GoF estudados em aula, EXCETO: Certo Workflow 6. Softwares são sequencias de instruções a serem seguidas ou executadas que solucionam problemas modelados através de algoritmos com documentação associada. Quando um desenvolver projeta um software ele deseja criar um programa com um mínimo de qualidade. Com base nesse pressuposto, qual única alternativa abaixo que um dos requisitos de qualidade esperado não se enquadra para software robusto desenvolvido: Certo Interpreter (interpretável) , Secure (confiável ) e Stable (estável) 7. (2017 - IESES - CREA-SC) Assinale a alternativa que define corretamente o conceito de Design Patterns: Certo ¿Uma solução para um problema dentro de um contexto¿ 8. 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: Certo façade e singleton 1. considerando a classe de projetos GoF assinalem a opção cujos padrões de projeto estão todos classificados como Comportamentais Certo Command,- Interpreter, - Iterator, - Mediator, - Observer, State, Strategy 2. Por que usar Padrões de Projeto? Certo Os padrões de projeto servem para alcançar objetivos na engenharia de software usando classes e métodos em linguagens orientadas a objeto. 3. Qual padrão de criação está representado na figura abaixo? Certo Abstract Factory 4. Assinale a alternativa correta. As classes participantes do padrão de projeto Abstract Factory são: Certo AbstractFactory, Concrete Factory, AbstractProduct, ConcreteProduct, Client 5. Podemos afirmar que os Padrões Estruturais da família GoF: Certo Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e colaboração mútua. 6. Quais dos padrões abaixo corresponde aos padrões de criação. Certo Abstract Factory, Builder, Factory Method 7. Observando o diagrama de classes abaixo, verificamos a aplicação de um padrão de criação GOF. Qual padrão foi utilizado para organizar as classes? Certo Abstract Factory 8. Escolha a opção que contem, somente, padrões de interface, segundo Metsker:: Certo Adapter, Facade, Composite e Bridge 1. Analise as sentenças abaixo sobre os grupos de padrões da família GoF e, em seguida, assinale a alternativa correta: I. Os Padrões Comportamentais são projetados para organizar, gerenciar e combinar diferentes comportamentos. Podemos citar os seguintes padrões pertencentes a esse grupo: Chain of Responsibility, Command e Interpreter. II. Os Padrões de Criação fornecem um guia de como instanciar objetos. Esta ação normalmente envolve decisões estáticas para escolher, por exemplo, quais objetos instanciar ou a quais classes delegar responsabilidade. São doze os padrões de criação: Adapter, Bridge, Composite, Decorator, Façade, Flyweight, Proxy, Abstract Factory, Builder, Factory Method, Prototype e Singleton. III. Os Padrões Estruturais definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e colaboração mútua. Certo Apenas as sentenças I e III estão corretas 2. (FESMIP-BA - 2011) Segundo a classificação de Design Patterns apresentada pela GoF, identifique com V os padrões comportamentais e com F, os demais. ( ) Observer. ( ) Iterator. ( ) Façade. ( ) Composite. ( ) Visitor. A alternativa que contém a sequência correta, de cima para baixo, é a Certo V V F F V 3. O Padrão de Projeto que define uma Interface para criar um objeto e também é conhecido como "Construtor Virtual" chama-se: Certo Factory Method 4. Padrões de projeto são voltados para que tipo de problemas? Assinale a resposta INCORRETA. Certo Problemas que não se repetem. 5. Quanto aos design patterns, é correto afirmar que: Certo descrevem melhores práticas, bons projetos, e captam a experiência de uma maneira possível de ser usada por outros. 6. Dentre as alternativas abaixo identifique a que NÃO define uma situação em que deve ser utilizado o padrão Factory Method? Certo Quando o algoritmo de criação de um objeto deve ser independente das suas partes constituintes e da maneira como ele é "montado". 7. São padrões de projeto GoF (design patterns), EXCETO: Certo Workflow. 8. Uma das categoria que tradicionalmente se classificam os padrões de projeto :Padrões Estruturais cujo objetivo é: Certo Define a forma de organização dos objetos e sua colaboração mutua 1. Qual o padrão Gof representado na figura abaixo? Certo Factory Method 2. Um design pattern descreve uma solução geral comprovada e reutilizável para um problema recorrente no desenvolvimento de sistemas de software orientados a objetos. Padrões de projeto ajudam a reconhecer e implementar boas soluções para problemas comuns. Dois dos principais design patterns utilizados atualmente são descritos a seguir: I. Visa garantir que uma classe só tenha uma única instância e prover um ponto de acesso global a ela. II. Visa definir uma dependência um-para-muitos entre objetos para que quando um objeto mudar de estado os seus dependentes sejam notificados e atualizados automaticamente. Os design patterns descritos em I e II são, respectivamente: Certo Singleton e Observer. 3. (FGV - 2008) Considere as seguintes assertivas sobre as vantagens do uso de padrões de software (software patterns): I. Padrões de projeto proporcionam um vocabulário comum de projeto, facilitando comunicação, documentação e aprendizado dos sistemas de software. II. Padrões de projeto auxiliam no desenvolvimento de software por meio da reutilização do projeto de soluções computacionais já testadas e aprovadas. III. Uma biblioteca de padrões pode ajudar a melhorar e padronizar o desenvolvimento de software. As assertivas corretas são: Certo I, II e III. 4. Conhecido como padrões da guangue dos quatro, os padrões GoF estão classificados em: Certo Padrões de criação, padrões estruturais e padrões comportamentais. 5. O projeto Orientado a objetos pressupõe a criação de modelos de domínio a partir dos requisitos identificados para entendimento do negócio e apresentação de uma solução. A esses modelos são acrescidas os aspectos físicos, como os métodos e a troca de mensagens entre eles. A questão é decidir a melhor forma de interação entre os métodos, ou seja, a atribuição da responsabilidade estabelecida para que se possa gerar um melhor resultado. Visando facilitar a construção de soluções são apresentados os padrões de projeto. Assinale dentre as alternativas a seguir a que NÃO define uma característica atribuída ao uso dos padrões. Certo São definidos por especialistas de problemas e servem para aplicação direta em qualquer contexto. 6. O modelo GoF (Gang of Four) são padrões de projeto de software com 23 modelos (ou soluções) de soluções para o desenvolvimento de algoritmos baseados no paradigma orientado a objetos. Esses modelos são classificados em subcategorias com propósitos comuns. Sabendo disso, assinale apenas uma das opções abaixo que é uma afirmativa verdadeira sobre os padrões GoF: Certo Os modelos dos padrões GoF são agrupados em três categorias, sendo-as: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais. 7. Qual padrão fornece uma interface para criação de famílias de objetos relacionados ou dependentes sem especificar suas classes completas? Certo Abstract Factory. 8. (CESGRANRIO - 2008 - TJ-RO - Analista Judiciário - Análise de Sistemas) Muitos frameworksutilizam um padrão de projeto (design pattern) que se baseia no princípio de projeto "Não nos chame, nós iremos chamar você" (O Princípio de Hollywood: "Don't call us, we'll call you."). Uma classe da aplicação herda de uma classe do framework que possui métodos abstratos, os quais são chamados em outros métodos concretos. A classe da aplicação sobrepõe os métodos abstratos da classe do framework com métodos concretos, permitindo que os métodos concretos da classe do framework sejam chamados. O padrão de projeto (design pattern) em questão chama-se: Certo Template Method 1. Analise as afirmações: I. Para não perder tempo e dinheiro elaborando soluções diferentes para o mesmo problema, poderíamos escolher uma solução como padrão e adotá-la toda vez que o problema correspondente ocorrer. Além de evitar o retrabalho, facilitaríamos a comunicação dos desenvolvedores e o entendimento técnico do sistema. Daí surge o conceito de padrão de projeto ou design pattern. (www.k19.com.br - apostila K19-K51). II. Um padrão de projeto é uma solução consolidada para um problema recorrente no desenvolvimento e manutenção de software orientado a objetos. III. Um padrão de projeto é descrito basicamente com um sumário e uma solução. Assinale a alternativa correta: Certo Todas as afirmativas estão corretas; 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 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 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. Certo as afirmações I e IV são verdadeiras. 3. Os padrões de projeto (Design Patterns) GoF são classificados nas categorias: Certo Criacional. Estrutural. Comportamental. 4. O Design Patterns que tem a finalidade de usar compartilhamento para suportar grandes quantidades de objetos, de granularidade fina, de maneira eficiente, é denominado Certo Flyweight 5. Quais são os grupos de padrões de projeto GoF - Gang of Four - Gangue dos Quatro? Certo Padrões de Criação, Padrões Estruturais e Padrões Comportamentais. 6. Prover uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas." . Para qual padrão de projeto a afirmação se relaciona? Certo Abstract Factory 7. Qual o objetivo dos Padrões Estruturais? Assinale a opção CORRETA. Certo Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e colaboração mutua. 8. Analise as afirmações abaixo: I. Encapsula a escolha da classe concreta a ser utilizada na criação de objetos. II. Especifica os tipos de objetos a serem criados usando protótipo de objetos III. Garante que uma classe tem somente uma instância; As afirrmações correspondem respectivamente a: Certo Factory Method, Abstract Factory, Singleton 1. Uma das categoria que tradicionalmente se classificam os padrões de projeto: Padrões de criação cujo objetivo é: Certo Define formas de instanciar objetos delegando responsabilidades 2. (FUMARC - 2011) São padrões de projeto GoF (design patterns), EXCETO: Certo Criador. 3. 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? Certo Strategy. 4. Além dos benefícios tradicionais relacionados com produtividade, redução do tempo de desenvolvimento e reaproveitamento de soluções passadas, a utilização de padrões de projeto pode contribuir ainda nos seguintes aspectos I - É uma abordagem complementar, auxiliam os analistas e desenvolvedores a melhor utilizar as práticas tradicionais de análise e projeto orientado a objetos, tais como abstração, encapsula mento, herança, polimorfismo, entre outros. II ¿ Cada padrão descreve um conjunto de problemas e a solução é única não podendo ser alterado III - Auxiliam programadores inexperientes a desenvolverem soluções mais elegantes, melhor documentadas, padronizadas e reutilizáveis. IV - Muitos dos padrões de projeto desenvolvidos auxiliam no re fatoramento da aplicação. Certo As afirmativas I, III, IV estão corretas e a afirmativa II está errada 5. (FGV ¿ 2016) 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 é: Certo Abstract Factory 6. Os padrões de criação correspondem a: Certo Abstract Factory, Builder, Factory Method, Prototype e Singleton. 7. Sobre padrões de projeto escolha a opção incorreta. Certo Um padrão de projeto define uma estrutura que obrigatoriamente não poderá ser alterada pelo desenvolvedor 8. Como a adoção de um padrão de projeto pode auxiliar o desenvolvimento de software? Certo Por meio da sugestão de melhorias nos acessos e estruturação de situações problemáticas 1. (FCC-2011) Os design patterns Certo podem ser modelados utilizando-se a linguagem UML que fornece um meio eficiente de modelar pa- drões de projeto representando-os como colaborações. 2. Existe um padrão GOF para implementar uma árvore de itens e tratar todos os nós, folhas ou não, de maneira uniforme. Implemente classes que representem um sistema de arquivos, com pastas e arquivos. Pastas possuem nome e diversos arquivos e subpastas. Arquivos possuem nome e tamanho em KB. Seu programa deve navegar pela árvore e imprimir seus itens e tamanhos. O texto está se referindo a qual padrão de projeto? Certo Composite 3. Além dos benefícios tradicionais relacionados com produtividade, redução do tempo de desenvolvimento e reaproveitamento de soluções passadas, a utilização de padrões de projeto pode contribuir ainda nos seguintes aspectos? Assinale a opção INCORRETA. Certo Auxiliam representar algoritmos como objetos, estruturas de classe ou objeto. 4. 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 pelos 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. Certo Factory Method. 5. Qual a função do Padrão de Method Factory? Certo Define uma interface para criar um objeto, mas deixa as subclasses decidirem que classe instanciar. O padrão permite adiar a instanciação para subclasses. 6. (2016 - IF-PE) Observe as afirmativas abaixo: I. Comfrequê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: Certo Adapter, Facade, Template Method, Chain of Responsibility e Proxy. 7. Qual o objetivo dos Padrões de Criação? Assinale a opção CORRETA. Certo Fornecem um guia de como instanciar objetos, e envolve decisões dinâmicas para escolher qual classe instanciar. 8. Podemos afirmar que os Padrões de Criação da família GoF: Certo Fornecem um guia de como instanciar objetos, que normalmente envolve decisões dinâmicas para escolher, por exemplo, qual classe instanciar ou a quais objetos delegar responsabilidade. 1. Sobre padrões de projeto selecione a opção correta sobre as afirmativas abaixo: I - Cada vez que uma boa solução for encontrada para um dado problema, a mesma deve ser lapidada, refinada e documentada para uso futuro. II - Padrões de projeto auxiliam projetistas e desenvolvedores a reutilizar soluções passadas, relacionadas com problemas são recorrentes em desenvolvimento de software. III ¿ Padrões de projeto são voltados para a resolução de problemas específicos, tornando os projetos orientados a objetos mais flexíveis, robustos e confiáveis. Iv ¿ Padrões de projeto não permitem a inovação tendo em vista que ¿engessam¿ a criatividade do desenvolvedor. Certo As afirmativas I, II, III estão corretas e a afirmativa IV está errada. 2. ¿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: Model, View, Control Padrões Estruturais Padrões Comportamentais Padrões de Criação 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 Certo 4,5,1,2,3 3. Podemos afirmar que padrões de projeto de software: Certo permitem descrever fragmentos de projeto e reusar idéias de projeto, ajudando desenvolvedores a se nivelar com a experiência de outros. 4. Sabendo que as soluções para os padrões de projeto são divididas em três tipos, de acordo com as características destes tipos informe a sequencia correta. I. Abrange a configuração e inicialização de objetos e classes. II. Lida com as interfaces e a implementação das classes e dos objetos. III. Lida com as interações dinâmicas entre grupos de classes e objetos. Certo I - Criacional, II - Comportamental, III - Estrutural 5. Uma das categoria que tradicionalmente se classificam os padrões de projeto :Padrões Comportamentais cujo objetivo é: Certo Define formas de gerencia e combinar diferentes comportamentos. 6. Analise as afirmações abaixo: I. Define uma dependência um para muitos entre objetos, de forma que, quando o objeto é alterado todos os seus dependentes são notificados e atualizados.. II. Dada uma linguagem define uma representação para a sua gramática juntamente com um interpretador. III. Agrega dinamicamente responsabilidades adicionais a um objeto. As afirrmações correspondem respectivamente a: Certo Observer, Interpreter, Decorator 7. Especificar os tipos de objetos a serem criados usando uma instância como protótipo e criar novos objetos ao copier este protótipo. Para qual padrão de projeto a afirmação se relaciona? Certo Nra 8. Em padrão de projeto existe uma situação onde uma classe chama um método abstrato especificado em alguma classe abstrata (ou interface) e a subclasse concreta vai decidir que tipo exato de objeto criar e retornar. Baseado nessa descrição marque a alternativa que aponta o padrão relacionado. Certo Factory Method. 1. A família de padrões GoF é dividida em três grupos principais de padrões, a saber: Certo Padrões Comportamentais; Padrões de Criação; Padrões Estruturais 2. Qual padrão define uma interface para criar um objeto, mas deixa as subclasses decidirem que classe instanciar? Certo Factory Method. 3. (CESGRANRIO - 2008 - BNDES - Profissional Básico - Especialidade - Análise de Sistemas) Ao alterar o estado de uma classe, o desenvolvedor deseja que uma ou mais classes da interface gráfica sejam modificadas. Entretanto, o desenvolvedor não acha interessante criar um acoplamento forte entre essas classes. Qual padrão de projeto comportamental é mais adequado para resolver essa situação? Certo Observer 4. considerando a classe de projetos GoF assinale a opção cujos padrões de projeto estão todos classificados como criação: Certo Abstractly factory ; Builder ; Factory Method ; Protype - Singleton 5. considere a afirmativa de Gamma e Al. citada abaixo e escolha a opção correta: ¿ Em geral, todas as arquiteturas orientadas a objeto bem-estruturadas estão cheias de padrões. Uma das maneiras de medir a qualidade de um sistema orientado a objetos é avaliar se os colaboradores tomaram bastante cuidado com as colaborações comuns entre seus objetos. Focalizar em tais mecanismos durante o desenvolvimento de um sistema pode levar a uma arquitetura menor, mais simples, muito mais compreensível do que aquelas produzidas quanto padrões são ignorados.¿ Certo Padrões são boas práticas e proporcionam garantia de qualidade na elaboração do código. 6. Sobre o que falava Erich Gamma quando o mesmo disse "Abstraem o processo de instanciação, ajudando a tornar o sistema independente da maneira que os objetos são criados, compostos e representados"? Certo Padrões de Criação 7. (CESGRANRIO - 2010 - BACEN - Analista do Banco Central) Um arquiteto de software estuda que padrões de projeto são apropriados para o novo sistema de vendas de uma empresa. Eledeve considerar que o padrão : Certo 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. 8. Para facilitar a manutenção da aplicação, há um design pattern que tem como objetivo principal centralizar o acesso aos dados em uma única camada. Esse design pattern é o Certo DAO 1. Relacione os padrões de projetos listados abaixo com suas respectivas finalidades: PADRÕES DE PROJETO 1. Facade (fachada) 2. Decorator (decorador) 3. Memento (lembrança) 4. Proxy (procurador) 5. Observer (observador) FINALIDADES ( ) Define uma dependência um para muitos entre objetos tal que, quando o estado de um objeto muda, todos os seus dependentes são notificados e atualizados automaticamente. ( ) Fornece uma interface unificada para um conjunto de objetos que constituem um subsistema. Define uma interface de mais alto nível que torna o subsistema mais fácil de usar. ( ) Sem violar o encapsulamento, captura e exterioriza o estado interno de um objeto, tal que o objeto possa ser restaurado a este estado mais tarde. ( ) Acrescenta responsabilidades adicionais a um objeto dinamicamente. Fornece uma alternativa flexível para a extensão de funcionalidade. ( ) Controla o acesso a um objeto através de outro objeto, que atua como seu substituto, ou como um envoltório. Assinale a alternativa que indica a sequência correta, de cima para baixo. Certo 5 - 1 - 3 - 2 - 4 1. (CESGRANRIO - 2009) Por motivo de segurança, deseja-se adicionar registro (log) das operações efetuadas no sistema de contabilidade de uma empresa. O arquiteto do sistema decide que deve existir somente uma instância de uma classe de registro (log) e que esta será o ponto de acesso global para os demais componentes do sistema. Que padrão de projeto pode ser utilizado nesse caso? Certo Singleton. 2. Qual o objetivo do padrão Builder? Assinale a opção INCORRETA. Certo Declara um método chamado clone na superclasse abstrata do modelo. 3. O padrão Singleton é um Padrão de Criação GoF. A estrutura desse padrão utiliza alguns recursos. Assinale o único recurso que NÃO pertence a esse padrão. Certo Modificando as aplicações para este padrão de projeto para que a facilidade de instanciar classes em tempo de execução possa acontecer; 4. Assinale dentre as opções abaixo, qual o padrão de projeto mais conhecidos e extensivamente utilizados em programação orientada a objetos e que está direcionado para as situações onde é preciso manter uma única instancia de uma classe durante toda a execução da aplicação. Certo Singleton 5. Assinale a afirmativa correta sobre o padrão Builder: Certo 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. 6. Qual padrão garante que uma classe tem somente uma instância e fornece um ponto global de acesso a mesma? Certo Singleton. 7. O padrão Builder é um Padrão de Criação GoF. Com relação aos seus objetivos podemos afirmar que: I- O padrão Builder é um padrão utilizado na instanciação de objetos complexos. II- O padrão Builder tem a função de tentar minimizar a carga que os desenvolvedores têm ao ato de criar objetos dentro de um construtor. III- O padrão Builder é bastante útil para guardar o estado de um objeto em determinados momentos. Est(á)ão correta(s) a(s) afirmativa(s): Certo Somente os itens I e II; 8. O padrão Singleton é um Padrão de Criação GoF. A grande vantagem deste padrão é: Assinale a única resposta CORRETA. Certo Acesso central e extensível a recursos e objetos; 1. 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? Certo Prototype. 2. i) Decorator permite anexar responsabilidades adicionais a um objeto dinamicamente. ii) Builder desacopla uma abstração de sua implementação para que os dois possam variar independentemente. iii) Mediator fornece um substituto ou ponto através do qual um objeto possa controlar o acesso a outro. Em relação aos itens acima está correto: Certo somente a i 3. Assinale a alternativa que indica o padrão correto. ¿Especifica os tipos de objetos a serem criados usando uma instância-protótipo e cria novos objetos pela cópia desse protótipo¿ Certo Prototype 4. O padrão de projeto Singleton é um dos padrões mais conhecidos e extensivamente utilizados em programação orientada a objetos. Sobre ele podemos afirmar I - Está direcionado para as situações onde precisamos manter uma única instancia de uma classe durante toda a execução da aplicação. II - A sua estrutura é bastante simples, existe apenas uma classe chamada Singleton, que define um método chamado Instance, responsável poder retornar aos clientes à única instancia da classe. III ¿ Na linguagem Java os modificadores states e private devem garantir uma mesma instância para todos os objetos criados e evitar acesso público; Certo As afirmativas estão todas corretas 5. Segundo Metsker, o padrão de projeto GoF _________________ é aplicado para substituir a geração de instâncias não-inicializadas de uma classe, fornecendo novos objetos a partir de uma classe-exemplo. Certo PROTOTYPE. 6. 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 pelos 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. Certo PROTOTYPE. 7. Considere as afirmativa abaixo sobre o padrão Builder: I ) É utilizado na instanciação de objetos complexos. II)É visto como um construtor especializado, que irá executar e avaliar diferentes regras de negócio e demais particularidades relacionadas com a criação de um novo objeto. III )A idéia é atribuir a responsabilidade de criação do objeto complexo a outra classe, esta classe irá armazenar todas as configurações e regras necessárias para a instanciação do novo objeto. Certo As afirmativas estão todas corretas 8. (CESGRANRIO - 2006 - Petrobrás ) Christopher Alexander afirma: "cada padrão descreve um problema no nosso ambiente e o cerne da sua solução, de tal forma que você possa usar essa solução mais de um milhão de vezes, sem nunca faze-lo da mesma maneira". Muito embora Alexander estivesse falando a cerca de padrões em construções e cidades, o que ele diz é verdadeiro em relação aos padrões de projeto orientados a objeto. Neste caso, as soluções são expressas em termos de objetos e interfaces em vez de paredes e portas, mas no cerne de ambos os tipos de padrões está a solução para um problema num determinado contexto. Quanto à indicação para o uso dos padrões de projeto é FALSO afirmar que o padrão: Certo Builder é indicado quando: uma classe não pode antecipar a classe de objetos que deve criar; uma classe quer que suas subclasses especifiquem os objetos que criam; classes delegam responsabilidade para uma dentre várias subclasses auxiliares, e você quer localizar o conhecimento de qual subclasse auxiliar que é a delegada. 1. Qual padrão separa 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? Certo Builder. 2. Analise as afirmativas abaixo, com relação aos padrões de projeto, e marque a opção correta. I - O Singleton é um padrão que garante que uma classe tenha apenas uma instância. II - Alguns padrões de criação como o Prototype, o Proxy e oFaçade não são adequados para a programação orientada a objetos. III - Adapter é um padrão estrutural utilizado para compatibilizar interfaces de modo que elas possam interagir. Certo Apenas I e III estão corretas 3. A implementação do padrão de projeto PROTOTYPE é facilitada quando usada na linguagem de programação ________ com a utilização da interface Cloneable, utilizada apenas para indicar que o método Object.clone() pode realizar uma cópia, atributo por atributo, das instâncias da classe. Assinale a opção que complementa corretamente a lacuna. Certo JAVA; 4. Segundo Metsker, 2004, o padrão de projeto ______________ tem como solução mover a lógica de construção de uma classe para um objeto externo, a fim de reduzir a complexidade da mesma e permitir a construção gradual de objetos-alvo a partir dessa classe. Escolha uma das alternativas abaixo que preenche corretamente a lacuna apresentada na descrição acima. Certo BUILDER. 5. (CESGRANRIO - 2010) Em um sistema de software para controlar pedidos para entrega em domicílio, deve haver uma funcionalidade que permita que o atendente solicite a repetição de um pedido anteriormente feito por um cliente. O gerente do restaurante informou que essa funcionalidade aumentaria a agilidade no atendimento aos clientes, visto que muitos deles tendem a fazer pedidos similares aos que já fizeram anteriormente. Ao usar essa funcionalidade, o atendente do restaurante seleciona um pedido cuja composição corresponde a produtos normalmente requisitados pelos clientes e solicita ao sistema a construção de um novo pedido igual ao selecionado. Esse novo pedido pode, então, ser alterado pelo atendente se o cliente solicitar a adição de novos produtos do cardápio, por exemplo. Portanto, a parte principal dessa funcionalidade corresponde a criar uma cópia de um pedido a partir de pedido preexistente. Na implementação dessa funcionalidade, seu desenvolvedor deve utilizar qual padrão de projeto do catálogo GoF (Gang of Four), dentre os listados abaixo? Certo Prototype. 6. Qual é o padrão GoF criacional correspondente ao código abaixo? public static void main(String[] args) { ObraPadrao obraPadrao = new ObraPadrao(); ObraPadrao obraNova = obraPadrao.clonar(); obraNova.setValor(200000.0); ..... ..... Certo Prototype 7. ¿Os padrões de criação abstraem o processo de instanciação. Um padrão de criação de classe usa a herança para variar a classe que é instanciada, enquanto que um padrão de criação de objeto delegará a instanciação para outro objeto.¿ Padrões Projeto, 1º edição/2000.Gamma. Segundo Metsker, 2004, o padrão de projeto _____________________ tem como solução mover a lógica de construção de uma classe para um objeto externo, a fim de reduzir a complexidade da mesma e permitir a construção gradual de objetos-alvo a partir dessa classe. Escolha uma das alternativas abaixo que preenche corretamente a lacuna apresentada na descrição acima. Certo Builder 8. Acerca dos padrões de criação e de padrões estruturais, assinale a opção correta. Certo O uso do padrão singleton apresenta como consequências uma redução do uso de variáveis globais e uma melhor organização do espaço de nomes de um software orientado a objetos. 1. 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 pelos 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. Certo BUILDER. 2. O padrão de projeto Singleton é usado para restringir: Certo A instanciação de uma classe para apenas um objeto 3. O padrão Prototype é um Padrão de Criação GoF. Com relação aos seus objetivos podemos afirmar que: I- O padrão de projeto Prototype declara um método chamado clone na superclasse abstrata do modelo. II- O padrão Prototype tem a função de tentar minimizar a carga que os desenvolvedores têm ao ato de criar objetos dentro de um construtor. III- O padrão Prototype é bastante útil para guardar o estado de um objeto em determinados momentos. Est(á)ão correta(s) a(s) afirmativa(s): Certo Somente os itens I e III; 4. Consideram as afirmativa abaixo sobre o padrão protype 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 instancias 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 foi necessário. Certo As afirmativas estão todas corretas 5. O padrão GoF Criacional que define um comportamento de clonagem de classes é: Certo Prototype 6. Sobre o padrão ¿Builder ¿, escolha a opção que descreve seu(s) objetivo(s): Certo Separar a construção de um objeto complexo de sua representação para que o mesmo processo de construção possa criar representações diferentes. 7. O padrão Singleton é um Padrão de Criação GoF. Com relação aos seus objetivos podemos afirmar que: I- O padrão de projeto Singleton declara um método chamado clone na superclasse abstrata do modelo. II- O padrão Singleton está direcionado para as situações onde precisamos manter uma única instancia de uma classe durante toda a execução da aplicação. III- O padrão Singleton é bastante útil para guardar o estado de um objeto em determinados momentos. Est(á)ão correta(s) a(s) afirmativa(s): Certo Somente o item II; 8. Qual dos padrões GOF abaixo é mais indicado quando necessitamos criar objetos de uma determinada classe, os quais só têm alguns poucos estados possíveis e é melhor copiá-los e aproveitar o seu estado atual do que criar um novo objeto no estado inicial. Certo Prototype 1. Qual padrão está representado na figura abaixo? Certo Bridge 2. [BNDES - CESGRANRIO 2009]A o consultar informações a respeito dos padrões de projeto Adapter e Bridge, um Analista de Sistemas identificou uma afirmativa INCORRETA. Assinale-a. Certo O Adapter é inferior ao Bridge porque não evita a replicação de código. 3. Qual padrão de projeto representado na figura abaixo? Certo Adapter 4. Qual o objetivo do padrão Decorator? Assinale a opção CORRETA. Certo Decorator permite anexar responsabilidades adicionais a um objeto (em caráter dinâmico) dinamicamente. 5. O padrão Bridger é um Padrão Estrutural GoF. Com relação aos seus objetivos podemos afirmar que (assinale a opção INCORRAETA). Certo No padrão Bridge a solução natural quando se pretende desenvolver uma determinada solução para duas plataformas diferentes é utilizar herança, implementando uma classe derivada para cada situação; 6. Observe a figura abaixo e escolha dentre as opções o padrão GOF para resolver o problema com a estrutura apresentada. Certo Composite 7. Marque a alternativa que melhor descreve uma situação típica onde poderia ser utilizado o padrão de projeto Adapter? Certo Um programador precisar utilizar uma classe que possui interface diferente da classe existente na aplicação. 8. Imagine que você está desenvolvendo um sistema para um bar especializado em coquetéis, onde existem vários tipos de coquetéis que devem ser cadastrados para controlar a venda. Os coquetéis são feitos da combinação de uma bebida base e vários outros adicionais que compõe a bebida. Por exemplo: Conjuntode bebidas: Cachaça Rum Vodka Tequila Conjunto de adicionais: Limão Refrigerante Suco Leite condensado Gelo Açúcar Então, como possíveis coquetéis temos: Vodka + Suco + Gelo + Açúcar Tequila + Limão + Sal Cachaça + Leite Condensado + Açúcar + Gelo Qual padrão você usaria para representar a estrutura acima? Certo Decorator 1. Construtores em Java definem uma maneira padrão de construir objetos. No entanto, depender de construtores para instanciar objetos pode nos levar a alguns problemas dos quais podemos citar, exceto: Certo Não é preciso saber a classe concreta do objeto para criá-lo 2. O padrão Adpater é bastante utilizado para compatibilizar classes implementas por programadores diferentes, ou desenvolvidas em momentos diferentes, ou ainda para unir classes com interfaces diferentes em uma estrututura hierarquica única, sem precisar implementar novamente todas as funcionalidades e interfaces da classe já existente, considere as afirmativas: I - A idéia é criar uma nova classe (Adapter) com a interface padrão que se deseja para fazer a conexão com a classe já existente (Adaptee) com interface diferente da estrutura de classes que se pretende utilizar no sistema. Ii - Além de reaproveitar totalmente a classe antiga sem precisar alterar o código e entender a complexa implementação realizada, mantém a uniformidade do seu projeto original. Iii cria uma hierarquia de classes diferentes categorias de objetos sem relação de herança. Certo As afirmativas I, II, estão corretas e a afirmativa III está errada. 3. Qual padrão desacopla uma abstração de sua implementação de modo que as duas possam variar independentemente? Certo Bridge. 4. Dentre as opções apresentadas assinale qual o padrão é bastante utilizado para compatibilizar classes implementas por programadores diferentes, ou desenvolvidas em momentos diferentes, ou ainda para unir classes com interfaces diferentes em uma estrutura hierárquica única, sem precisar implementar novamente todas as funcionalidades e interfaces da classe já existente. Certo Padrão Adapter 5. Qual o padrão Gof utilizado na figura abaixo? Certo Adapter 6. O padrão Bridger é um Padrão Estrutural GoF. Quando devemos usar esse padrão? Assinale a opção INCORRAETA. Certo Quando houver uma interface que permita a implementação estática; 7. Qual é o padrão GoF estrutural correspondente ao código abaixo? public class Main { public static void main(String[] args) { Carro carro = new CrossFox(); System.out.println("Produto: " + carro.getProdutos()); System.out.println("Preço: R$ " + carro.getCusto()); // Adiconando Ar e Travas carro = new CarroComArCondicionado(carro); carro = new CarroComTravaEletrica(carro); System.out.println("Produto: " + carro.getProdutos()); System.out.println("Preço: R$ " + carro.getCusto()); } } ....... Certo Decorator 8. O Padrão de Projeto Estrutural (GOF) que se apresenta com o formato de uma árvore (estrutura de dados) quando é representado por um Diagrama de Objetos (UML) chama-se: Certo Composite 1. Que padrão estrutural anexa dinamicamente responsabilidades adicionais a um objeto. Provê uma alternativa flexível ao uso de herança como mecanismo de extensão de funcionalidade: Certo Decorator 2. Analise as afirmações abaixo: I. Desacopla uma abstração de sua implementação, de modo que as duas possam variar independentemente. II. Compõe objetos em estuturas de árvores que representam hieráquia todo parte. III. Fornece uma interface simples para uma coleção de classes. As afirrmações correspondem respectivamente a: Certo Bridge, Composite, Façade 3. Assinale a alternativa correspondente ao padrão de projeto utilizado para adicionar responsabilidades dinâmicas a objetos. Certo Decorator 4. (2016 - COPEVE-UFAL) 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. Qual o padrão de projeto que representa a estrutura de relacionamento entre as classes AWT? Certo Composite 5. (CESGRANRIO - 2009) Ao consultar informações a respeito dos padrões de projeto Adapter e Bridge, um Analista de Sistemas identificou uma afirmativa INCORRETA. Assinale-a. Certo O Adapter é inferior ao Bridge porque não evita a replicação de código. 6. Imagine que em meu sistema eu tenha uma classe compra, que para fazer o pagamento, utiliza o método Billing, e que esse método espera algo que herde de uma interface IPagamento. Cartão de crédito é uma classe abstrata que herda de IPagamento. Boleto é uma classe que herda de IPagamento. Visa e master são as implementações reais que utilizávamos, até então, para fazer o Billing dependendo do cartão que o cliente utilizava, e a propósito, elas herdam de CartaodeCredito. Segue o diagrama: Porém, a loja decide que vai ter mais um tipo de cartão de crédito, terá o ¿Sorocred¿. O Analista logo pensa: ¿Tudo bem, é só eu herdar de CartaodeCredito, implementar a forma específica de Billing e pronto! ¿. Só que vem a surpresa: o cliente tem a própria Dll de Billing, que não pode ser alterada, ou pior: a estrutura de classe de ¿Sorocred¿ foi desenhada da seguinte maneira: Com qual padrão GOF, você resolverá o problema? Certo Adapter 7. Dado o diagrama de classe identifique o padrão GoF estrutual: Certo Composite 8. Os Padrões de Projeto (GOF) que se apresentam com o formato de uma Lista Encadeada (estrutura de dados) quando são representados por um Diagrama de Objetos (UML) e se classificam, respectivamente, como Padrão de Projeto Estrutural e Padrão de Projeto Comportamental, são conhecidos como: Certo Decorator e Chain of Responsibility 1. Qual padrão GOF é usado no diagrama abaixo? Certo Bridge 2. O padrão Composite é um Padrão Estrutural GoF. Com relação aos seus objetivos podemos afirmar que: I- O padrão de projeto Composite permite anexar responsabilidades adicionais a um objeto (em caráter dinâmico) dinamicamente. II- O padrão Composite permite que seja encapsulado os detalhes (como se eu falasse com um aluno ou com vários alunos da mesma forma), o que permite uma programação muito mais leve. III- O padrão Composite permite que clientes tratem objetos individuais e composições de objetos de maneira uniforme. Est(á)ão correta(s) a(s) afirmativa(s): Certo Somente os itens II e III; 3. Qual o objetivo do padrão Compositer? Assinale a opção INCORRETA. Certo Composite permite anexar responsabilidades adicionais a um objeto (em caráter dinâmico) dinamicamente. 4. Qual padrão compõe objetos em estruturas de árvore para representarem hierarquias partes-todos e permite aos clientes tratarem de maneira uniforme os objetos individuais e as composições de objetos? Certo Composite. 5. Qual o nome do padrão de projeto que pode ser utilizado para permitir que uma hierarquia de abstrações e suas diferentes implementações possam variar independentemente? Certo Bridge 6. O padrão Adapter é um Padrão Estrutural GoF. Com relação aos seus objetivos podemos afirmar que: I- O padrão de projeto Adapter converte a interface de uma classe em outra interface esperada pelos clientes. II- O padrão Adapter permite a comunicação entre classes que não poderiam trabalhar juntas devido à incompatibilidade de suas interfaces. III- O padrão Adapter desacoplar uma abstração de sua implementação para que os dois possam variarindependentemente. Est(á)ão correta(s) a(s) afirmativa(s): Certo Somente os itens I e II; 7. Observe a figura abaixo e escolha dentre as opções o padrão GOF para resolver o problema com a estrutura apresentada. Certo Composite 8. (FUNCAB - 2010) Segundo Trott e Shalloway, o princípio de projetar a partir de um contexto, é um conceito para criar a visão global antes de se projetar os detalhes que aparecem nos componentes. Das opções seguintes, o padrão de projeto que é um melhor exemplo de aplicação desse princípio é: Certo bridge 1. Programadores se deparam muitas vezes com a 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: Certo Decorator. 2. Qual padrão estrutural permite que um objeto utilize serviços de outros objetos com interfaces diferentes por meio de uma interface única: Certo Adapter 3. Qual padrão agrega dinamicamente responsabilidades adicionais a um objeto e fornece uma alternativa flexível ao uso de subclasses para extensão de funcionalidades? Certo Decorator. 4. A classe java.util.Map da API de coleções de Java permite que sejam armazenados pares de objetos (chave e valor) em uma de suas implementações (as mais conhecidas são HashMap e TreeMap). No entanto, estas classes não possuem um construtor que receba como parâmetro uma matriz de duas linhas e que monte o mapa usando a primeira linha como chave e a segunda como coluna. Qual padrão utilizar para resolver o problema acima? Certo Adapter 5. Um compositor musical deseja criar uma hierarquia de classes para representar a estrutura das suas notas musicais. Em primeiro lugar, definiu uma classe abstrata chamada Melodia, a seguir, criou duas classes derivadas, uma chamada Nota e outra chamada Partitura. Cada Nota musical representa o elemento mínimo de uma Melodia e cada Partitura é formada por uma ou mais notas. Marque a alternativa que representa o melhor padrão de projeto para modelar este problema. Certo Composite 6. Qual padrão observamos no diagrama de classes abaixo? Certo Decorator 7. Dado o diagrama de classe identifique o padrão GoF estrutual Certo Adapter 8. Programadores se deparam muitas vezes com a situação onde é preciso acrescentar responsabilidades a objetos e não a classe. Uma das opções é utilizar herança, entretanto, esta alternativa é estática. Outra alternativa é especificar uma nova classe para implementar cada responsabilidade que se deseja atribuir dinamicamente a um dado objeto. Esta nova classe se chama _____________________________. Certo Decorator; 1. Os padrões estruturais correspondem a: Certo Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy. 1. O padrão Flyweight é um Padrão Estrutural GoF. Qual o melhor momento em que podemos usar esse padrão? I- Quando o tamanho do conjunto de objetos for significativamente menor que a quantidade de vezes em que eles são usados na aplicação. II- Quando objetos podem ser usados em diferentes contextos ao mesmo tempo (agindo sempre como um objeto independente). III- Quando for necessário elaborar um algoritmo ou algo complicado para separar objetos mutáveis de imutáveis. Est(á)ão correta(s) a(s) afirmativa(s): Certo Somente os itens I e II; 2. Estruturar um sistema em subsistemas ajuda a reduzir a complexidade do problema (Gamma et al., 2000). No entanto, um objetivo comum de todos os projetos é minimizar a comunicação e as dependências entre os diferentes subsistemas. Uma das maneiras de contornar esse problema é utilizar o padrão de projeto que qual forneça uma interface única e simplificada para os recursos e facilidades mais gerais de um subsistema. Este padrão de projeto é conhecido como: Certo Façade; 3. (CESGRANRIO - 2009) 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 Certo Façade. 4. Os padrões de projetos, quando aplicados ao desenvolvimento de aplicações, fornecem meios de descrever soluções comuns para problemas comuns, resultando em redução de tempo gasto com o desenvolvimento e melhoria da qualidade da aplicação. (FCC - 2009) Analise: I. É o responsável pela especificação dos tipos de objetos a serem criados usando uma "instância" prototípica e pela criação de novos objetos copiando este protótipo. II. Define uma interface de nível mais alto que torna o subsistema mais fácil de usar e fornece uma interface única para um subsistema com diversas interfaces; compõe o grupo de padrões estruturais. III. Integrante do grupo de padrões comportamentais, ele provê uma forma de acessar sequencialmente os elementos de um agregado de objetos, sem expor a representação interna desse agregado. IV. As consequências do uso deste padrão é que o encapsulamento é mantido, já que objetos usam sua própria informação para cumprir responsabilidades; leva ao fraco acoplamento entre objetos e à alta coesão, uma vez que objetos fazem tudo que é relacionado à sua própria informação. As afirmações correspondem, respectivamente, aos padrões Certo Prototype, Façade, Iterator e Expert. 5. A classe Façade, em qualquer contexto, tem como objetivo mais amplo buscar respostas para um problema de forma transparente em um conjunto de subsistemas e fornecer uma resposta imediata. Marque a alternativa que NÃO indica uma vantagem do padrão Façade (Fachada) Certo Fazer com que o cliente conheça todas as regras de negócio para que possa realizar as mudanças. 6. O padrão Flyweight é um Padrão Estrutural GoF. Quando não devemos usar esse padrão? I- Quando o estado dos objetos não for imutável II- Quando o tamanho do conjunto de objetos for significativamente menor que a quantidade de vezes em que eles são usados na aplicação; III- Quando objetos podem ser usados em diferentes contextos ao mesmo tempo (agindo sempre como um objeto independente); Est(á)ão correta(s) a(s) afirmativa(s): Certo Somente o item I; 7. Qual o padrão fornece um substituto ou marcador para controlar o acesso a um objeto? Certo Proxy. 8. Que padrão estrutural provê um ponto de atendimento para que outro objeto possa controlar o acesso ao primeiro: Certo Proxy 1. A utilização do padrão estrutural de projeto cula ideia é utilizar um substituto para o objeto real, mantendo a mesma interface do original sempre que for inconveniente, ou indesejável, acessá-lo diretamente é conhecido como: Certo Proxy; 2. Qual o objetivo do padrão Proxyr? Assinale a opção CORRETA. Certo Proxy prove um substituto ou ponto através do qual um objeto possa controlar o acesso a outro; 3. Qual a vantagem do padrão Proxyr? Assinale a opção INCORRETA. Certo Permite, sempre que for desejável, criar uma interface para um conjunto de objetos com o objetivo de facilitar o uso da aplicação; 4. A classe Façade, em qualquer contexto, tem como objetivo mais amplo buscar respostas para um problema de forma transparente em um conjunto de subsistemas e fornecer uma resposta imediata para a classe cliente. Assinale dentre as principais vantagens desse padrão de projeto a única que não é verdadeira.: Certo Incentivar acoplamento forte entre o subsistema e seus clientes. 5. Converter a interface de uma classe em outra interface esperada pelos clientes. Permite a comunicação entre classes quenão poderiam trabalhar juntas devido à incompatibilidade de suas interfaces. Para qual padrão de projeto a afirmação se relaciona? Certo Nra 6. Qual padrão de projeto tem como propósito prover interface unificada para conjunto de interfaces em um subsistema, definindo uma interface de alto-nível. Certo Facade 7. 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. Certo Proxy 8. O objetivo do 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 abaixo forem verdadeiras, EXCETO uma. Qual delas abaixo é essa situação? Certo Quando for necessário elaborar um algoritmo ou algo complicado para separar objetos mutáveis de imutáveis; 1. Uma empresa tem, dentre outros, um sistema de vendas e outro de controle de estoque. Supondo que o sistema de vendas necessita utilizar funcionalidades do sistema de controle de estoque, qual padrão deve ser utilizado para que estas funcionalidades sejam disponibilizadas? Certo Fachada 2. Quanto às vantagens, assinale a opção INCORRETA sobre o padrão Façade. Certo Quando o tamanho do conjunto de objetos for significativamente menor que a quantidade de vezes em que eles são usados na aplicação; 3. Quanto aos padrões de projeto orientados a objetos, assinale a opção correta. Certo O Façade pode ser usado quando se deseja prover uma interface simples para um subsistema complexo; existem muitas dependências entre clientes e as classes que implementam uma abstração. 4. Dado o diagrama de classe identifique o padrão GoF estrutual Certo Flyweight 5. O Padrão Flyweight é um objeto compartilhado, que pode ser usado em vários contextos, simultaneamente, pois, tem capacidade de funcionar de forma independente em cada contexto. Seus métodos e implementações não podem, em momento algum, fazer _____________________________________________________________ Certo hipóteses ou asserções sobre o contexto no qual o objeto opera. 6. (FESMIP-BA - 2011) O Design Patterns que tem a finalidade de usar compartilhamento para suportar grandes quantidades de objetos, de granularidade fina, de maneira eficiente, é denominado Certo Flyweight. 7. O padrão _________________ controla o acesso ao objeto original. Fornece um substituto ou marcador da localização de outro objeto para controlar o seu acesso. Qual padrão abaixo corresponde ao descrito acima? Certo Proxy 8. O objetivo do padrão Flyweight é diminuir o consumo de memória, porém deve ser utilizado com cautela; Gamma et al (2000). São várias as recomendações para seu uso. Analise as alternativas abaixo e marque a alternativa que NÃO se refere a uma recomendação para uso do padrão Flyweight. Certo O cliente não precisar conhecer as regras do negócio. 1. considerando a classe de projetos GoF assinale a opção cujos padrões de projeto estão todos classificados como Estruturais: Certo adapter ; bridge ; composite ; decorator ; faça de ; flyweight ; Proxy 2. Qual padrão fornece uma interface unificada para um conjunto de interfaces em um subsistema e define uma interface de nível mais alto que torna o subsistema mais fácil de ser usado? Certo Façade. 3. Qual padrão usa compartilhamento para suportar eficientemente grandes quantidades de objetos de granularidade fina? Certo Flyweight. 4. (BNDES - CESGRANRIO 2009) 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 Certo Façade. 5. (FCC - 2011) No contexto dos padrões de projeto: I. Oferecer uma interface simples para uma coleção de classes. II. Desacoplar uma abstração de sua implementação para que ambas possam variar independentemente. Correspondem respectivamente a Certo Façade e Bridge. 1. O padrão Chain of Responsability é um Padrão Comportamental GoF. Qual o seu objetivo? Assinale a afirmativa INCORRETA Certo 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; 2. Qual o objetivo do padrão Interpreter? Assinale a opção CORRETA. Certo Dada uma linguagem, definir uma representação para sua gramática junto com um interpretador que usa a representação para interpretar sentenças na linguagem; 3. Aponte dentre as opções colocadas aquela que corresponde a estrutura do padrão que sugere que a modelagem do problema seja realizada através de uma gramática recursiva.. Certo Interpreter; 4. No padrão MVC é possível definir grupos de componentes principais: o Model (Modelo), o View (Apresentação) e o Controller (Controle). Deve fazer parte do componente: Certo Model, as classes com métodos conhecidos como setters e getters e que representam tabelas do banco de dados. 5. Entre as vantagens do padrão Interpreter podem-se citar: I - facilidade para mudar e estender a gramática, pois, o padrão utiliza classes para representar as regras gramaticais. I i - Pode-se usar herança para mudar ou estender a gramática, assim como expressões existentes podem ser modificadas incrementalmente e novas expressões podem ser criadas a partir das existentes; Iii - a implementação da gramática é mais fácil, pois, classes que definem os nós folhas da árvore tem implementações similares. Por outro lado, uma das desvantagens é que o padrão Interpreter define, ao menos, uma classe para cada regra da gramática, logo, gramáticas com muitas regras são difíceis de manter e administrar. Certo As afirmativas estão todas corretas 6. Dentre as opções apresentadas, assinale aquela que corresponde ao padrão de projeto que sugere a implementação de um algoritmo que faz uso de diferentes métodos, diferenciando das soluções convencionais por deixar o esqueleto deste algoritmo fixo em uma superclasse abstrata. Certo Template Method 7. Os padrões de comportamento correspondem a: Certo Chain of Responsability, Command, Interpreter, Iterador, Mediator, Memento, Observer, State, Strategy, Template Method e Visitor 8. (PETROBRAS - CESGRANRIO 2010) Um dos participantes da equipe de desenvolvimento de um framework deve implementar uma operação em uma das classes desse framework. Seja X o nome dessa classe. Essa operação implementa um algoritmo em particular. Entretanto, há passos desse algoritmo que devem ser implementados pelos usuários do framework através da definição de uma subclasse de X. Sendo assim, qual o padrão de projeto do catálogo GoF (Gang of Four) a ser usado pelo desenvolvedor do framework na implementação da referida operação, dentre os listados a seguir? Certo Template Method.1. Qual padrão evita o acoplamento do remetente de uma solicitação ao receptor e encadeia os objetos receptores passando a solicitação ao longo da cadeia até que um objeto a trate? Certo Chain of Responsability. 2. 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. Certo Interpreter 3. 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. Certo 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. 4. 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: Certo Template Method 5. O padrão Classe Handler é um Padrão Comportamental GoF. Quais os benefícios do padrão de projeto Chain of Responsability com a Classe Hanter? I- O acoplamento é reduzido, pois, o padrão libera um objeto de ter que conhecer qual o outro objeto que trata de uma solicitação; II- 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; III- Flexibilidade na atribuição de responsabilidades, ou seja, pode-se mudar a cadeia de objetos em tempo de execução, adicionando ou removendo objetos; IV- A receptação não é garantida, isto é, no momento que a requisição não tem um receptor explícito, não há garantias que ela será tratada; Est(á)ão correta(s) a(s) afirmativa(s): Certo Somente os itens I, II e III; 6. 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. Certo concretas; 7. O padrão Chain of Responsability é um Padrão Comportamental GoF. Qual afirmativa abaixo não está relacionada a esse padrão? Certo Reduz a interconexão entre os objetos, ao invés de um objeto manter uma lista com todos os receptores candidatos, ele mantém uma referência única para o sucessor; 8. Dentre as opções colocadas abaixo, assinale aquela que corresponde ao padrão de projeto que requer para sua implementação, 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 Certo Chain of Responsability ; 1. Qual é o padrão GoF comportamental correspondente ao código abaixo? Approver larry = new Director(); Approver sam = new VicePresident(); Approver tammy = new President(); larry.SetSuccessor(sam); sam.SetSuccessor(tammy); // Generate and process purchase requests Purchase p = new Purchase(2034, 350.00, "Assets"); larry.ProcessRequest(p); p = new Purchase(2035, 32590.10, "Project X"); larry.ProcessRequest(p); p = new Purchase(2036, 122100.00, "Project Y"); larry.ProcessRequest(p); ....... Certo Chain of Responsability 2. (BACEN ¿ CESGRANRIO 2010) Um arquiteto de software 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 Certo 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. 3. 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? Certo Template Method 4. Qual padrão se define uma dependência um-para-muitos entre objetos de forma que quando o objeto muda de estado todos os seus dependentes são notificados e atualizados automaticamente? Certo Observer. 5. Aponte dentre as opções abaixo aquela que corresponde ao padrão que apresenta como uma desvantagens, a obrigatoriedade da definição de ao menos, uma classe para cada regra da gramática, logo, gramáticas com muitas regras são difíceis de manter e administrar. Certo Interpreter; 6. Qual padrão usar para definir uma representação de uma linguagem para sua gramática junto a um interpretador que sua representação para interpretar essas sentenças? Certo Interpreter. 7. Marque a única alternativa correta sobre um cenário de aplicação do padrão de projeto Template Method Certo Implementamos partes invariantes de um algoritmo em uma classe abstrata e deixamos que o restante do código seja implementado nas subclasses 8. Analise as sentenças abaixo. I - A estrutura do padrão interpreter sugere que a modelagem do problema seja realizada através de uma gramática procedural. II - O padrão Interpreter tem como desvantagem definir uma classe para cada gramática, pois quando se tem muitas gramáticas, são difíceis de manter e administrar. III - No padrão de projeto Template Method as partes que podem variar, conforme a situação, contexto ou problema a ser resolvido, são redefinas nas classes derivadas (concretas). IV - O padrão de projeto Template Method sugere a implementação de um algoritmo fixo em uma superclasse abstrata onde se consegue alterar o comportamento do algoritmo, sem modificar sua estrutura lógica. Marque a opção correta. Certo II - III - IV 1. 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? Certo Template Method. 2. São exemplos de Padrões de Projeto Comportamentais: Certo Interpreter, Chain of Responsibility e Observer 3. Qual o objetivo do padrão Template Method? Assinale a opção CORRETA. Certo Definir o esqueleto de um algoritmo dentro de uma operação, deixando alguns passos a serem preenchidos pelas subclasses; 4. O padrão Classe Handler é um Padrão Comportamental GoF. Qual afirmativa abaixo NÃO corresponde a esse padrão? Certo A classe Handler é uma classe abstrata, portanto, não pode ser instanciada diretamente; 5. O padrão GoF Comportamental utilizado: Certo Observer 6. (CESGRANRIO - 2010) Um dos participantes da equipe de desenvolvimento de um framework deve implementar uma operação em uma das classes desse framework. Seja X o nome dessa classe. Essa operação implementa um algoritmo em particular. Entretanto, há passos desse algoritmo que
Compartilhar