Prévia do material em texto
PADRÕES DE PROJETO DE SOFTWARE 3a aula Lupa Exercício: CCT0763_EX_A3_V1 2020 Aluno(a): Disciplina: CCT0763 - PADRÕES DE PROJETO DE SOFTWARE 1 Questão Qual padrão de projeto representado na figura abaixo? Adapter Low coupling Chain of Responsability Creator High coehsion Respondido em 28/08/2020 19:49:28 Explicação: O padrão Adpater é bastante utilizado para compatibilizar classes implementadas 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. 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 (Adapter) com interface diferente da estrutura de classes que se pretende utilizar no sistema. javascript:diminui(); javascript:aumenta(); 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. 2 Questão Qual padrão observamos no diagrama de classes abaixo? Composite Bridge FlyWeight Prototype Decorator Respondido em 28/08/2020 19:51:25 Explicação: O padrão Decorator é um padrão de cuja intenção são as Extenções. O padrão Decorator anexa responsabilidades adicionais a um objeto (em caráter dinâmico) dinamicamente. Decorators oferecem uma alternativa flexível ao uso de herança para estender uma funcionalidade (para a extensão de funcionalidade). 3 Questão 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: Adapter Facade Composite Decorator Bridge Respondido em 28/08/2020 19:53:17 4 Questão O padrão Bridger é um Padrão Estrutural GoF. Quando devemos usar esse padrão? Assinale a opção INCORRAETA. Quando houver uma interface que permita a implementação estática; Quando for necessário evitar uma ligação permanente entre a interface e implementação; Quando alterações na implementação não puderem afetar clientes; Quando implementações são compartilhadas entre objetos desconhecidos do cliente; Quando tanto abstrações como implementações precisarem ser capazes de suportar extensão através de herança; Respondido em 28/08/2020 19:54:27 Explicação: Essa afirmativa está INCORRETA, porque ela se refere ao padrão Adapter. 5 Questão 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: Conjunto de 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? Observer State Strategy Decorator Façade Respondido em 28/08/2020 19:57:00 Explicação: O padrão Decorator é um padrão de cuja intenção são as Extenções. O padrão Decorator anexa responsabilidades adicionais a um objeto (em caráter dinâmico) dinamicamente. Decorators oferecem uma alternativa flexível ao uso de herança para estender uma funcionalidade (para a extensão de funcionalidade). 6 Questão (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? Strategy Observer Composite Decorator Chain of Responsability Respondido em 28/08/2020 19:59:46 Explicação: Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy. Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e colaboração mutua. O padrão Composite compõem objetos em estruturas de árvore para representar hierarquias todo-parte. Composite permite que clientes tratem objetos individuais e composições de objetos de maneira uniforme. 7 Questão Escolha a opção que descreve o objetivo do ¿Composite¿: Compor objetos em estruturas sequenciais para representar hierarquias de herança aplicada. O Composite permite que clientes tratem objetos individuais e composições de objetos de maneira uniforme. Criar instancias de objetos em estruturas que representam hierarquias de dependência de plataforma de implementação. O Composite permite que clientes tratem objetos distintos, e as composições, desses objetos de maneira parecidas. Compor objetos em estruturas de árvore para representar heranças de classes abstratas, que serão instanciadas. O Composite permite que clientes tratem objetos individuais e composições de objetos de maneira uniforme. Compor objetos em estruturas de árvore para representar hierarquias todo-parte. O Composite permite que clientes tratem objetos individuais e composições de objetos de maneira uniforme. Compor objetos em estruturas de árvore para representar hierarquias todo-parte. Composite permite que clientes tratem objetos em grupo e não objetos de maneira uniforme. Respondido em 28/08/2020 20:01:44 Explicação: Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy. Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e colaboração mutua. O padrão Composite compõem objetos em estruturas de árvore para representar hierarquias todo-parte. Composite permite que clientes tratem objetos individuais e composições de objetos de maneira uniforme. 8 Questão 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? Chain of Responsibility Adapter Iterator Observer Interpreter Respondido em 28/08/2020 20:02:46 Explicação: Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy. Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e colaboração mutua. Os Padrões Estruturais tratam da composição de classes e objetos para formar estruturas complexas; associados à maneira como classes e objetos são organizados estruturalmente; oferecem formas efetivas para usar conceitos OO como herança e composição, e são abstrações de aspectos estruturais. O padrão Adpater é bastante utilizado para compatibilizarclasses implementadas 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. 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 (Adapter) com interface diferente da estrutura de classes que se pretende utilizar no sistema. 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. javascript:abre_colabore('38403','203466087','4067535987');