Baixe o app para aproveitar ainda mais
Prévia do material em texto
-Padrão Abstract Factory (Fábrica Abstrata) A intenção deste padrão é fornecer uma “fábrica” de objetos sem que os clientes conheçam efetivamente as classes concretas. Considere aplicar o padrão Abstract Factory quando um sistema deve ser independente de como os seus produtos são criados ou representados. É especialmente válido quando se deseja criar uma família de produtos. *void meramente ilustrativo. - Conseqüências do Abstract Factory - isola classes concretas; - troca de família de produtos - Promove harmonia entre produtos; 01. (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 especificar suas classes completas. III. O padrão Bridge define uma interface para criar um objeto, mas deixa as subclasses decidirem que classe será instanciada. O Bridge permite a uma classe postergar a instanciação das subclasses. IV. O Chain of responsability usa compartilhamento para suportar grandes quantidades de objetos e define uma dependência um‐para‐muitos entre objetos, de modo que quando um objeto muda de estado, todos os seus dependentes são automaticamente notificados e atualizados. 02. O objeto criado no passo anterior irá instanciar conexões e consultas correspondentes ao tipo de DB criado; isto é, caso um DB XML tenha sido instanciado, apenas consultas XML e conexões XML serão instanciadas; caso um DB SQL tenha sido instanciado, apenas consultas SQL e conexões SQL serão instanciadas. O diagrama de classe a seguir ilustra a estrutura descrita acima. Qual padrão de projeto foi utilizado na solução proposta? a) Adapter b) Builder c) Composite d) Abstract Factory e)Chain of Responsibility 03. Analise as seguintes afirmações relacionadas a padrões de projetos: I. O padrão Builder separa a construção de um objeto complexo de sua representação, de modo a que o mesmo processo de construção possa criar diferentes representações. II. O método Abstract Factory fornece uma interface para a criação de uma família de objetos relacionados ou dependentes sem especificar suas classes completas. III. O padrão Bridge define uma interface para criar um objeto, mas deixa as subclasses decidirem que classe será instanciada. O Bridge permite a uma classe postergar a instanciação das subclasses. IV. O Chain of responsability usa compartilhamento para suportar grandes quantidades de objetos e define uma dependência um-para-muitos entre objetos, de modo que quando um objeto muda de estado, todos os seus dependentes são automaticamente notificados e atualizados. Indique a opção que contenha todas as afirmações verdadeiras. a) I e III b) II e III c) III e IV d) I e II e) II e IV 05. 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? Singleton Abstract Factory Proxy Prototype Nra 06. 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? Abstract Factory Padrão de Projeto Factory Method O principal objetivo do padrão factory method está relacionado ao fornecimento de um guia para postergação da criação de objetos por parte das classes filhas. O padrão Factory Method é comumente usado para definirmos um Framework. Desejamos que os clientes do Framework decidam a melhor maneira de usá-lo. Este padrão é geralmente utilizado quando uma classe não pode antecipar quais os objetos devem ser criados. As classes filhas de um cliente deverão armazenar o conhecimento sobre a construção do objeto. Conseqüências Fornece ganchos para subclasses; Conecta hierarquias de classes paralelas; Exemplo: 06.Dentre as alternativas abaixo identifique a que NÃO define uma situação em que deve ser utilizado o padrão Factory Method? Quando o algoritmo de criação de um objeto deve ser independente das suas partes constituintes e da maneira como ele é "montado". [Nesta situação, utiliza‐se o Builder] Quando classes delegam responsabilidade para uma entre várias subclasses de apoio. Quando se quer localizar num ponto único a conhecimento de qual subclasse está sendo usada. Quando uma classe quer que suas subclasses especifiquem os objetos criados. Quando uma classe (o criador) não pode antecipar a classe dos objetos que deve criar. 07. Em relação aos padrões de projeto de software assinale a alternativa correta. a) Singleton é um padrão utilizado quando se deseja separar a construção de um objeto complexo de sua representação de modo que o mesmo processo de construção possa criar diferentes representações. b) Builder é um padrão utilizado quando se deseja especificar os tipos de objetos a serem criados usando uma instância protótipo e criar novos objetos pela cópia desse protótipo. c) Adapter é um padrão utilizado quando se deseja desacoplar uma abstração de sua implementação, de modo que as duas possam variar independentemente. d) Factory Method é um padrão utilizado quando se deseja definir uma interface para criar um objeto e deixar as subclasses decidirem que classe instanciar. e) Proxy é um padrão utilizado quando se quer garantir que uma classe tenha somente uma instância e fornecer um ponto global de acesso a mesma. 08.Considere: I. Fornecer uma interface para criação de famílias de objetos relacionados ou dependentes, sem especificar suas classes concretas. Possibilitar o adiamento da instanciação para as subclasses. II. Garantir a existência de apenas uma instância de uma classe, mantendo um ponto global de acesso ao seu objeto. III. Possibilitar o armazenamento do estado interno de um objeto em um determinado momento, para que seja possível retorná-lo a este estado, caso necessário. I, II e III são, respectivamente, objetivos dos design patterns intitulados: a) Interpreter, Iterator e Memento. b) Command, Singleton e Iterator. c) Factory Method, Singleton e Memento. d) Iterator, Factory Method e Flyweight. e) Singleton, Flyweight e Command. 09. Os padrões de projeto podem ser vistos como heurísticas que guiam os desenvolvedores de software na organização do espaço de objetos de uma aplicação. Os padrões de projeto GoF (GoF patterns) são classificados em três tipos: de criação, de estrutura e de comportamento. Considerando esses padrões de projeto e a figura acima, julgue os itens de 61 a 63 11.Caso seja verificado no desenvolvimento de um sistema forte acoplamento entre as classes, recomenda-se o uso do padrão de comportamento Factory Method, que evita o acoplamento do remetente de uma solicitação ao seu receptor, dando a mais de um objeto a oportunidade de tratar uma solicitação, mesmo nos casos em que o conjunto de objetos não seja conhecido a priori ou seja definido dinamicamente. Certo Errado 12.No desenvolvimento de um sistema estruturado em subsistemas para facilitar o acesso e minimizar a comunicação e dependências entre os subsistemas, o padrão de criação Factory Method, que fornece uma interface para acriação de famílias de objetos relacionados ou dependentes sem especificar suas classes concretas, é mais indicado que o padrão de criação Prototype. Certo Errado 13. - Considere os padrões que podem ser utilizados em um projeto de software e relacione os padrões com suas respectivas intenções primárias. Padrão I - Bridge II - Builder III - Factory Method Intenção primária (P) Padrão estrutural cuja intenção é converter a interface de uma classe em outra interface, esperada pelos clientes, permitindo que classes com interfaces incompatíveis trabalhem em conjunto, o que, de outra forma, seria impossível. (Q) Padrão estrutural cuja intenção é desacoplar uma abstração da sua implementação, de modo que as duas possam variar independentemente. (R) Padrão de criação cuja 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. (S) Padrão de criação cuja intenção é definir uma interface para criar um objeto, mas deixando as subclasses decidirem que classe instanciar. Ele permite adiar a instanciação para subclasses. A relação correta é: a) I - P , II - Q , III - R b) I - P , II - Q , III - S c) I - Q , II - R , III - S d) I - Q , II - R , III - P e) I - Q , II - S , III – P 14.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. Singleton. Factory Method. Facade. Builder 15. 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. Apenas as sentenças II e III estão corretas Todas as sentenças estão corretas Apenas as sentenças I e III estão corretas Apenas a sentença II está correta Apenas as sentenças I e II estão corretas 16. 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. Factory Method. Facade. Mediator. Singleton. Builder. 17. 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. Facade. Singleton. Factory Method. Builder. Mediator 18. 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. Factory Method. Singleton. Builder. Mediator Facade 19. O Padrão de Projeto que define uma Interface para criar um objeto e também é conhecido como "Construtor Virtual" chama-se: Factory Method 20. 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;} } 21. Analisando o que foi codificado pelo desenvolvedor podemos averiguar que ele utilizou um modelo dos padrões de pro-jeto GoF (Gang of Four) pertencente a categoria dos padrões de criação. Baseado nesse contexto, assinale abaixo a úni - ca opção que informa corretamente qual foi o modelo dos padrões GoF de criação empregado no desenvolvimento das classes JAVA apresentada anteriormente: Factory Method (Método de fabricação). 22. O padrão Variações protegidas tem como característica: É um principio básico para fornecer flexibilidade e proteção contra diversos tipos de variações em um projeto orientado a objetos, tais como: variações nos dados, comportamento, hardware, componentes de software, sistemas operacionais, entre outros. 23. 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 normalmenteenvolve 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. sentenças I e III estão corretas 24. Apenas as Considere as afirmativas abaixo sobre o padrão prototype: I ‐ Declara um método chamado clone na superclasse abstrata do modelo (Prototype). Em função desta declaração, cada classe concreta derivada deve ser capaz de gerar uma nova instância de si próprio. II ‐ Entre as aplicações para este padrão de projeto está a facilidade de instanciar classes em tempo de execução. ‐ 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 for necessário 25. 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. BUILDER. SINGLETON. FACTORY METHOD. MEDIATOR. PROTOTYPE 26. 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 a) Command, Iterator, Singleton e Expert. b) Controller, Expert, Singleton e Prototype. c) Command, Singleton, Controller e Façade. d) Prototype, Façade, Iterator e Expert. e) Adapter, Façade, Command e Iterator. 27. 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? a) Builder. b) Factory Method. c) Command. d) Abstract Factory. e) Prototype. 28. Com relação aos padrões de projeto, julgue os itens seguintes. Alguns padrões de criação como o Prototype, o Proxy e o Façade não são adequados para a programação orientada a objetos. Certo Errado - Julgue os itens que se seguem a respeito dos padrões de desenho e outras técnicas para reúso de software. Uma das vantagens do padrão Prototype é o reúso de memória possível por meio do compartilhamento de vários objetos por meio de múltiplas interfaces. Certo Errado 29.Questão (Ref.: 107360) Pontos: 0,5 / 0,5 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. BUILDER. SINGLETON. PROTOTYPE. FACTORY METHOD. MEDIATOR. 30. 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. Apenas as sentenças II e III estão corretas Todas as sentenças estão corretas Apenas as sentenças I e III estão corretas Apenas a sentença II está correta Apenas as sentenças I e II estão corretas 31. 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. As afirmativas I, II, III estão incorretas As afirmativas I, III, estão corretas e II errada As afirmativas II, III estão corretas e a afirmativa I está errada. As afirmativas estão todas corretas As afirmativas I, II, estão corretas e a afirmativa III está errada. 32. Assinale a afirmativa correta sobre o padrão Builder: Deve-se é separar no construtor da própria classe a lógica para criação de um objeto e concentrar a lógica de criação em uma hierarquia de herança. 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. Deve-se é embutir no construtor da própria classe a lógica para criação de um objeto ou ainda distribuir a lógica de criação em vários métodos adicionais. A legibilidade da solução final, ou seja, para entender como um objeto é criado e sob quais condições, fica comprometida é uma abordagem que não facilita a criação de objetos com diferentes configurações e representações, tornando o código dependente a complexidade das classes relacionadas 12. Qual dos padrões GOF abaixo é mais indicado quando necessitamos criarobjetos 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. Abstract Factory Prototype Singleton Builder Decorator 24. 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 Command, Singleton, Controller e Façade. Adapter, Façade, Command e Iterator. Prototype, Façade, Iterator e Expert. Controller, Expert, Singleton e Prototype. Command, Iterator, Singleton e Expert. 25. (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? Prototype. Command. Abstract Factory. Builder. Factory Method 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. Decorator Builder Singleton Abstract Factory Prototype Dentre as opções apresentadas para o padrão Prototype, no que se refere, as aplicações para este padrão de projeto, assinale a única que estrá correta. facilidade de instanciar classes em tempo de programação; facilidade de copiar classes em tempo de execução facilidade de instanciar classes em tempo de execução. facilidade de instanciar classes em tempo de geração do SGDB facilidade de eliminar classes em tempo de execução; 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. Builder Singleton Prototype Decorator Abstract Factory (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 Command, Singleton, Controller e Façade. Adapter, Façade, Command e Iterator. Command, Iterator, Singleton e Expert. Controller, Expert, Singleton e Prototype. Prototype, Façade, Iterator e Expert. 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. BUILDER. FACTORY METHOD. SINGLETON. MEDIATOR. PROTOTYPE. 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. As afirmativas II, III estão corretas e a afirmativa I está errada. As afirmativas I, III, estão corretas e II errada As afirmativas I, II, III estão incorretas As afirmativas estão todas corretas As afirmativas I, II, estão corretas e a afirmativa III está errada. Padrão de Projeto Prototype O objetivo do padrão Prototype é estabelecer uma maneira de produzir cópias fiéis de objetos. O Prototype deve ser independente de como os produtos são criados , compostos e representados. É também utilizado quando as classes a instanciar forem especificadas em tempo de execução. Conseqüências - Adiciona e remove produtos em tempo de execução; - Especifica novos objetos pela variação de valores; - Difícil implementação do clone(). 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 nor-malmente 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 pedi-do preexistente. Naimplementação dessa funcionalidade, seu desenvolvedor deve utilizar qual padrão de projeto do ca-tálogo GoF (Gang of Four), dentre os listados abaixo? Prototype 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. Prototype 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 sis - tema 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 funcionali - dade corresponde a criar uma cópia de um pedido a partir de pedido preexistente. Na implementação dessa funcionali-dade, seu desenvolvedor deve utilizar qual padrão de projeto do catálogo GoF (Gang of Four), dentre os listados abai - xo? Prototype Dentre as opções apresentadas para o padrão Prototype, no que se refere, as aplicações para este padrão de projeto, assinale a única que estrá correta. facilidade de instanciar classes em tempo de execução. 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. Prototype 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: Prototype, Façade, Iterator e Expert 63 - 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. JJ. 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. Apenas as sentenças I e III estão corretas Q: 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 [Atenção para o modificador static que está escrito errado porém a proposição é considerada correta!] 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; Sobre o padrão de projeto Singleton, I ‐ o número 1 no canto superior da classe pode ser utilizado opcionalmente para indicar que esta classe terá apenas uma única instância. II ‐ para se implementar o padrão Singleton na classe acima, esta deverá possuir um método construtor ServicesFactory() privado. III ‐ caso uma subclasse estenda a classe ServicesFactory através de herança, o método getInstance() deverá ser sobrescrito (override) para construir a subclasse. [Não pois não se sobrescreve método estático] IV ‐ o método getInstance() deverá ser obrigatoriamente declarado como um método estático (static). O padrão de projeto singleton é usado para restringir a) a instanciação de uma classe para objetos simples. b) a instanciação de uma classe para apenas um objeto. c) a quantidade de classes d) as relações entre classes e objetos. classes de atributos complexos Considerando a figura abaixo, que apresenta um diagrama de relacionamento entre os padrões de projeto descritos no livro GoF Book, julgue os próximos itens acerca dos conceitos de programação orientada a objetos e padrões de projetos orientados a objetos. I A implementação de padrões de projeto criacionais em linguagens como C#, Delphi e Java sempre envolverá a alocação de memória para a criação de objetos. II A implementação de montadores de árvores sintáticas apóia-se mais no uso do padrão Singleton que no uso do padrão Composite. III A implementação de tratadores de eventos de interface gráfica apóia-se mais no uso do padrão Observer que no uso do padrão Visitor. IV A implementação de famílias portáveis de componentes de interface gráfica depende mais do emprego do padrão Chain of Responsibility que do padrão AbstractFactory. V O padrão TemplateMethod é mais simples que o padrão Memento. Estão certos apenas os itens a) I, II e IV. b) I, III e V. c) I, IV e V. d) II, III e IV. e) II, III e V. - Em relação aos padrões de projeto de software assinale a alternativa correta. a) Singleton é um padrão utilizado quando se deseja separar a construção de um objeto complexo de sua representação de modo que o mesmo processo de construção possa criar diferentes representações. b) Builder é um padrão utilizado quando se deseja especificar os tipos de objetos a serem criados usando uma instância protótipo e criar novos objetos pela cópia desse protótipo. c) Adapter é um padrão utilizado quando se deseja desacoplar uma abstração de sua implementação, de modo que as duas possam variar independentemente. d) Factory Method é um padrão utilizado quando se deseja definir uma interface para criar um objeto e deixar as subclasses decidirem que classe instanciar. e) Proxy é um padrão utilizado quando se quer garantir que uma classe tenha somente uma instância e fornecer um ponto global de acesso a mesma. - Na UML, o padrão Singleton (GoF) pode ser visto como na classe abaixo: Sobre o padrão de projeto Singleton, assinale a alternativa INCORRETA: a) onúmero 1 no canto superior da classe pode ser utilizado opcionalmente para indicar que esta classe terá apenas uma única instância. b) para se implementar o padrão Singleton na classe acima, esta deverá possuir um método construtor ServicesFactory() privado. c) caso uma subclasse estenda a classe ServicesFactory através de herança, o método getInstance() deverá ser sobrescrito (override) para construir a subclasse. d) o método getInstance() deverá ser obrigatoriamente declarado como um método estático (static). Considere: I. Fornecer uma interface para criação de famílias de objetos relacionados ou dependentes, sem especificar suas classes concretas. Possibilitar o adiamento da instanciação para as subclasses. JJ. Garantir a existência de apenas uma instância de uma classe, mantendo um ponto global de acesso ao seu objeto. III. Possibilitar o armazenamento do estado interno de um objeto em um determinado momento, para que seja possível retorná-lo a este estado, caso necessário. I, II e III são, respectivamente, objetivos dos design patterns intitulados: f) Interpreter, Iterator e Memento. g) Command, Singleton e Iterator. h) Factory Method, Singleton e Memento. i) Iterator, Factory Method e Flyweight. j) Singleton, Flyweight e Command. - Em relação a padrões de projeto de software, assinale a afirmativa incorreta a) Builder é um padrão utilizado quando se deseja separar a construção de um objeto complexo de sua representação de modo que o mesmo processo de construção possa criar diferentes representações. b) Factory Method é um padrão utilizado quando se deseja definir uma interface para criar um objeto e deixar as subclasses decidirem que classe instanciar. c) Adapter é um padrão utilizado quando se deseja converter a interface de uma classe em outra interface, esperada pelos clientes. d) Singleton é um padrão utilizado quando se deseja compor objetos em estrutura de árvore para representarem hierarquias partes-todo. e) Proxy é um padrão também conhecido como surrogate utilizado quando se deseja fornecer um substituto ou marcador da localização de outro objeto para controlar o acesso ao mesmo. Acerca desses padrões, avalie: I. Em termos de padrões de criação de projetos, algumas classes, tais como um spooler de impressão ou um sistema de arquivos, devem ser instanciadas uma única vez e prover um ponto de acesso global a esta instância. II. Pertencente ao grupo de padrões estruturais, é utilizado para permitir que dois objetos se comuniquem mesmo que tenham interfaces incompatíveis. III. Encapsula uma requisição como um objeto, permitindo que os clientes parametrizem diferentes requisições e filas, ou façam o registro de log de requisições e dêem suporte a operações que podem ser desfeitas. IV. Atribuir a responsabilidade do tratamento de um evento do sistema a uma classe que representa o próprio sistema ou à classe que representa um caso de uso. As proposições correspondem, respectivamente, aos padrões: a) Singleton, Adapter, Command e Controller. b) Command, Iterator, Singleton e Expert. c) Façade, Iterator, Expert e Adapter. d) Controller, Expert, Singleton e Prototype. e) Adapter, Façade, Command e Iterator. O padrão de projeto orientado a objetos denominado singleton exprime o fenômeno recorrente na análise que é a existência de muitas aplicações nas quais há um objeto que é a única instância de sua classe. Certo Errado O Singleton é um padrão que garante que uma classe tenha apenas uma instância. Certo Errado O padrão singleton permite que uma classe Java tenha apenas uma instância e fornece múltiplos pontos de acesso à classe. Certo Errado 8. (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? Visitor. Singleton. Bridge. Memento. Iterator. 10. 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; As afirmativas I, III, estão corretas e II errada As afirmativas II, III estão corretas e a afirmativa I está errada. As afirmativas I, II, III estão incorretas As afirmativas I, II, estão corretas e a afirmativa III está errada. As afirmativas estão todas corretas 57. 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; As afirmativas estão todas corretas As afirmativas II, III estão corretas e a afirmativa I está errada. As afirmativas I, II, III estão incorretas As afirmativas I, II, estão corretas e a afirmativa III está errada. As afirmativas I, III, estão corretas e II errada 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. Singleton Builder; Composite; Decorator; Prototipe: 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; As afirmativas I, II, III estão incorretas As afirmativas I, II, estão corretas e a afirmativa III está errada. As afirmativas I, III, estão corretas e II errada As afirmativas II, III estão corretas e a afirmativa I está errada. As afirmativas estão todas corretas Considerando que o padrão tem o objetivo de garantir que existe apenas uma instancia de uma certa classe a qualquer instante e em qualquer ponto de um sistema. Indique o padrão mencionado e cite uma vantagem de sua utilização. Resposta: Gabarito: padrão singleton uma vantagem apontada é o desempenho de uma aplicação. Padrão deProjeto Singleton O conceito por trás do padrão de projeto Singleton reside na necessidade de se garantir a penas uma única instância de uma classe. Ou seja, não permitir mais de um objeto. A solução reside em tornar a classe responsável por manter esta unicidade. Singleton Static instance() Exemplo: - Consequências: * Acesso controlado a instância única. * Espaço de nomes reduzidos. * Variantes para controle de vários objetivos. Padrão de Projeto Adapter A intenção de iso do padrão de projeto Adapter reside na compatibilidade de uso de frameworks e bibliotecas com interfaces à priori conflitantes ou mesmo imutáveis para determinados clientes. - Consequências: * Permite o Adapter substituir algum comportamento de adaptee - 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? Singleton 53 - São responsabilidades do GRASP? Falso - Tratar instanciamento único (Singleton) Verdadeiro - Baixo acoplamento das classes Verdadeiro - Tratar o polimorfismo Verdadeiro - Alta coesão das classes Falso - Tratar a estrutura parte-todo (Composite)
Compartilhar