Baixe o app para aproveitar ainda mais
Prévia do material em texto
1. 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: Chain of Responsibility e Decorator Decorator e Observer Observer e Decorator Decorator e Chain of Responsibility Observer e Chain of Responsibility 2. Assinale a alternativa correspondente ao padrão de projeto utilizado para adicionar responsabilidades dinâmicas a objetos. Composite Façade Adapter Decorator Bridge 3. Observe a figura abaixo e escolha dentre as opções o padrão GOF para resolver o problema com a estrutura apresentada. Composite Observer Chain of Responsability GRASP JEE 4. 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: Decorator Bridge Facade Composite Adapter 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. O Adapter é inferior ao Bridge porque não evita a replicação de código. O foco do Adapter é a solução de incompatibilidades entre duas interfaces existentes. O Bridge estabelece uma ponte entre uma abstração e suas possíveis implementações. Ambos promovem a flexibilidade ao fornecer um nível de endereçamento indireto para outro objeto. Ambos são padrões estruturais que possuem alguns atributos em comum. 6. Marque a alternativa que melhor descreve uma situação típica onde poderia ser utilizado o padrão de projeto Adapter? Um programador precisa de um método que simplifique o acesso a uma hierarquia de classes. Um programador precisa utilizar uma classe que possui a mesma interface da classe existente na aplicação. Um programador precisa de uma classe que possua um método para retornar a única instância existente da classe. Um programador precisar utilizar uma classe que possui interface diferente da classe existente na aplicação. Um programador precisa ser avisado quando houver alterações no estado de um objeto. 7. 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? Proxy Flyweight Adapter Façade Bridge 8. Qual padrão estrutural permite que um objeto utilize serviços de outros objetos com interfaces diferentes por meio de uma interface única: Flyweight 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. FACTORY METHOD. MEDIATOR. FACADE. BUILDER. SINGLETON. 2a Questão (Ref.: 201201190330) Fórum de Dúvidas (0) Saiba (0) Assinale a afirmativa correta sobre o padrão Builder: é 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 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. 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 é 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. A legibilidade da solução final, ou seja, para entender como um objeto é criado e sob quais condições, fica comprometida 3a Questão (Ref.: 201201189881) Fórum de Dúvidas (0) Saiba (0) 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. MEDIATOR. FACTORY METHOD. SINGLETON. FACADE. BUILDER. 4a Questão (Ref.: 201201678923) Fórum de Dúvidas (0) Saiba (0) ¿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. Factory Method Builder Singleton Facade Abstract Factory 5a Questão (Ref.: 201201810629) Fórum de Dúvidas (0) Saiba (0) 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 copiar classes em tempo de execução. facilidade de instanciar classes em tempo de programaçã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; Gabarito Comentado 6a Questão (Ref.: 201201190333) Fórum de Dúvidas (0) Saiba (0) 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 I, II, III estão incorretas As afirmativas I, II, estão corretas e a afirmativa III está errada. As afirmativas II, III estão corretas e a afirmativa I está errada. As afirmativas I, III, estão corretas e II errada7a Questão (Ref.: 201201190327) Fórum de Dúvidas (0) Saiba (0) 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. 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, III estão incorretas As afirmativas I, II, estão corretas e a afirmativa III está errada. 8a Questão (Ref.: 201201190331) Fórum de Dúvidas (0) Saiba (0) 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 estão todas corretas As afirmativas II, III estão corretas e a afirmativa I está errada. As afirmativas I, II, estão corretas e a afirmativa III está errada. Facade Composite Adapter Bridge ¿Padrões de Software são soluções reutilizáveis para problemas reincidentes que ocorrem durante o desenvolvimento de softwares¿ Gamma, E. (2009) Associe as colunas e marque a alternativa correta: 1. Model, View, Control 2. Padrões Estruturais 3. Padrões Comportamentais 4. Padrões de Criação 5. Padrões GOF ( ) Abstraem o processo de instanciação ( ) Estão divididos em três famílias ( ) Pode diminuir potencialmente o desempenho: a cada camada, as representações dos objetos sofrem modificações, e essas modificações levam tempo para serem realizadas ( ) Tratam das associações entre classes e objetos ( ) Tratam das interações e divisões de responsabilidades entre as classes ou objetos 1,5,2,3,4 4,1,5,3,2 5,1,3,4,2 5,1,3,2,4 4,5,1,2,3 2a Questão (Ref.: 201201189891) Fórum de Dúvidas (1) Saiba (0) Dentre as alternativas abaixo identifique a que NÃO define uma situação em que deve ser utilizado o padrão Factory Method? Quando uma classe quer que suas subclasses especifiquem os objetos criados. Quando se quer localizar num ponto único a conhecimento de qual subclasse está sendo usada. Quando classes delegam responsabilidade para uma entre várias subclasses de apoio. Quando o algoritmo de criação de um objeto deve ser independente das suas partes constituintes e da maneira como ele é "montado". Quando uma classe (o criador) não pode antecipar a classe dos objetos que deve criar. 3a Questão (Ref.: 201201676162) Fórum de Dúvidas (1) Saiba (0) 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? Abstract Factory Observer Memento Adapter Nra 4a Questão (Ref.: 201201729863) Fórum de Dúvidas (1) Saiba (0) Qual padrão é de arquitetura? MVC Gamma Flower GRASP GoF 5a Questão (Ref.: 201201946178) Fórum de Dúvidas (1) Saiba (0) 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: I, II e III. Somente I e III. Somente II. Somente II e III. Somente I e II. 6a Questão (Ref.: 201201897930) Fórum de Dúvidas (1) Saiba (0) 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: 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 Organizacionais. Os modelos dos padrões GoF são agrupados em duas categorias, sendo-as: Padrões de Criação e Padrões Comportamentais. Os modelos dos padrões GoF são agrupados em duas categorias, sendo-as: Padrões Estruturais e Padrões Comportamentais. Os modelos dos padrões GoF são agrupados em quatros categorias, sendo-as: Padrões de Criação, Padrões Estruturais, Padrões Organizacionais e Padrões Comportamentais. 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. 7a Questão (Ref.: 201201189864) Fórum de Dúvidas (1) Saiba (0) 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. Builder. Mediator Singleton. Factory Method. 8a Questão (Ref.: 201201190295) Fórum de Dúvidas (1) Saiba (0) 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 Padrões são boas práticas e proporcionam garantia de qualidade na elaboração do código Padrões é uma forma obrigatória de programar com objetos Padrões são de uso obrigatório e eliminam os erros cometidos na fase programação. Padrões causam falta de criatividade nos desenvolvedores e esta perda compromete a qualidade Padroes sempre levam a uma arquitetura menor principalmente quando se usa tecnologia de objetos Que padrão estrutural provê um ponto de atendimento para que outro objeto possa controlar o acesso ao primeiro: Adapter Flyweight FacadeProxy Decorator 2. considerando a classe de projetos GoF assinale a opção cujos padrões de projeto estão todos classificados como Estruturais: adapter ; bridge ; composite ; decorator ; faça de ; flyweight ; singleton singleton; bridge ; protype; decorator ; faça de ; flyweight ; Proxy adapter ; bridge ; protype ¿ decorator ; faça de ; flyweight ; singleton adapter ; bridge ; composite ; decorator ; faça de ; flyweight ; Proxy singleton; bridge ; composite; decorator ; faça de ; flyweight;¿ Proxy 3. O objetivo do padrão de projeto estrutural de oFlyweight é diminuir o consumo de memória, porém deve ser utilizado com cautela; Gamma et al (2000) recomendam sua utilização somente quando todas as condições forem verdadeiras. Assinale dentre as opções abaixo a unica condição que não é verdadeira Os custos de armazenamento são altos por causa da grande quantidade de objetos. Uma aplicação utiliza um grande número de objetos. Uma aplicação utiliza um pequeno número de objetos. Muitos grupos de objetos podem ser substituídos por relativamente poucos objetos compartilhados, uma vez que estados extrínsecos são removidos. A aplicação não depende da identidade do objeto. Gabarito Comentado 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 Prototype. Decorator. Observer. Flyweight. Façade. 5. Que padrão estrutural usa compartilhamento para suportar um grande número de pequenos objetos de forma eficiente. Decorator Composite Facade Flyweight Bridge 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 Flyweight. Composite. State. Builder. Strategy. 7. 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 _____________________________________________________________ hipóteses ou asserções sobre fora do contexto no qual o objeto opera. Acoplamento fraco entre o subsistema e seus clientes. hipóteses ou exclusões sobre o contexto no qual o objeto opera. comparações ou associações sobre o contexto no qual o objeto opera. hipóteses ou asserções sobre o contexto no qual o objeto opera. Gabarito Comentado 8. (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 Bridge e Adapter. Façade e Bridge. Adapter e Façade. Composite e Bridge. Façade e Composite. 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. Generalizada; alto acoplamento; baixa coesão. concretas; com método púbico; Gabarito Comentado 2. (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? Singleton. Interpreter. Decorator. Template Method. Observer. 3. 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. As afirmativas estão todas corretas As afirmativas I, II, III estão incorretas As afirmativas I, II, estão corretas e a afirmativa III está errada. As afirmativas II, III estão corretas e a afirmativa I está errada. As afirmativas I, III, estão corretas e II errada 4. 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.. Template Method; Mediator Interpreter; Chain of Responsability, Iterator 5. (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? Observer. Singleton. Template Method. Interpreter. Decorator. 6. 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 classe Handler; Chain of Responsability ; Iterator; Mediator; Template Method; Gabarito Comentado 7. 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. 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; 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. Padrão libera um objeto de ter que conhecer qual o outro objeto que trata de uma solicitação. Flexibilidade na atribuição de responsabilidades, ou seja, pode-se mudar a cadeia de objetos em tempo de execução, adicionando ou removendo objetos. Remetente e receptor não têm conhecimento explícito um do outro. Gabarito Comentado 8. (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 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. Bridge separa 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. Builder garante que uma classe seja instanciada somente uma vez, fornecendo também um ponto de acesso global. Template Method utiliza compartilhamento para suportar, eficientemente, grandes quantidades de objetos de granularidade fina. Singleton separa uma abstração de sua implementação, de modo que os dois conceitos possam variar de modo independente. A definição ¿ Captar e externalizar um estado interno de um objeto, de maneira que esse estado seja restaurado ao objeto em outro momento, sem violar seu encapsulamento (Gamma et al., 2000).¿ Refre-se a que padrão de projeto: Command Builder. Memento Mediator Iterator 2. Existe um padrão de projeto que é bastante utilizado em programação de sistema para gerenciar a comunicação entre dois ou mais objetos. Ele pode ser visto como uma classe intermediária de comunicação e gerenciamento, evitando que os objetos se comuniquem de forma direta. Dentre as opções abaixo assinale aquela que está correta para a colocação acima. Padrão Interator; Padrão Mediator; Padrão Memento Command; Padrão Proxy; 3. O problema de acessar elementos de coleções, matrizes ou estruturas de dados encadeados é bastante recorrente em programação. Assinale dentre as alternativas abaixo,aquela que oferece uma forma de percorrer este tipo de objeto agregado, sem conhecer seus detalhes de implementação. Padrão Memento; Padrão Visitor; Padrão Iterator; Padrão Proxy; Padrão Mediator; Gabarito Comentado 4. (FGV - 2009) Os padrões de projeto orientados a objeto podem ter finalidade de criação, estrutural ou comportamental. Os padrões de criação se preocupam com o processo de criação de objetos. Os padrões estruturais lidam com a composição de classes ou de objetos. Os padrões comportamentais caracterizam as maneiras pelas quais classes ou objetos interagem e distribuem responsabilidades. Assinale a alternativa que apresenta apenas padrões de projeto comportamentais. Composite, Decorato e Proxy. Proxy, Builder e Mediator. Prototype, Abstract Factory e Builder. Mediator, Interpreter e Command. Singleton, Composite e Interpreter. 5. (UNEAL - COPEVE 2010) Definir um objeto que encapsula a forma como um conjunto de objetos interage. Promove o acoplamento fraco ao evitar que os objetos se refiram uns aos outros explicitamente. Qual opção abaixo corresponde à descrição anterior? Intenção do padrão de projeto composite Intenção do padrão de projeto command Intenção do padrão de projeto proxy Intenção do padrão de projeto mediator Intenção do padrão de projeto strategy 6. Command : Encapsula uma solicitação como um objeto, permitindo a parametrização de clientes com diferentes solicitações, o enfileiramento e o registro de solicitações e o suporte a operações que possam ser desfeitas. (Gamma et al., 2000). Sobre ele podemos afirmar com toda a certeza: O objetivo do padrão de projeto Command é encapsular chamadas de métodos. Os métodos, nesta abordagem devem ser padronizados e hierarquizados de forma que a implementação trabalhe novos objetos. esta abordagem é que o objeto que está realizando a chamada do método precisa conhecer com detalhes sobre seu funcionamento. Nesta abordagem o objeto que está realizando a chamada do método precisa conhecer com detalhes a implementação em relação asparente ao local, tempo e ao objeto que vai realizar uma determinada tarefa Este padrão de projeto oferece pouca flexibilidade na arquitetura do sistema, uma vez que não permite adição de novas funcionalidades 7. Assinale dentre as opções abaixo aquela que corresponde ao objetivo do padrão de projeto Command. encapsular chamadas dos objetos; .encapsular chamadas de métodos. disponibilizar chamadas de métodos. Disponibilizar o uso do método private. disponibilizar o acesso aos aobjetos 8. Memento:Captar e externalizar um estado interno de um objeto, de maneira que esse estado seja restaurado ao objeto em outro momento, sem violar seu encapsulamento (Gamma et al., 2000). Sobre este padrão de projetos podemos afirma com certeza: É bastante utilizado em programação de sistemas para gerenciar a comunicação entre dois ou mais objetos, mas não deve ser usado quando associado a percorrer arrays ou tabelas. É bastante utilizado em programação de sistemas para gerenciar a comunicação entre dois ou mais objetos Considerando objetos que implementam arrays, pode ser visto como uma classe intermediária de comunicação e gerenciamento, evitando que os objetos se comuniquem de forma direta Oferece uma forma de percorrer este tipo de objeto agregado sem conhecer seus detalhes de implementação tem como objetivo criar um meio de armazenar informações sobre um objeto, permitindo acessar essas informações tanto para salvar o estado de um objeto específico, como para recuperar, sempre que for necessário. Dentre as opções abaixo identifique aquela que corresponde ao padrão de projeto, cujo principal objetivo, é permitir que sejam adicionadas novas funcionalidades a classes previamente concebidas sem que haja necessidade de alterar sua implementação. Visitor; State; Strategy; Interpreter Criador; 2. Marque a alternativa que está relacionada com o padrão de projeto que pode ser utilizado para configurar uma classe com umdentre muitos comportamentos disponíveis. State Memento Observer Visitor Strategy Gabarito Comentado 3. (COPEVE-UFAL - 2011) O diagrama de classes apresentado na figura não representa fielmente um buffer que passa por estados sucessivos de transformação. Em outras palavras, um buffer, que está inicialmente vazio, depois pode ficar parcialmente cheio e, possivelmente, pode ficar cheio. Dentre as opções apresentadas a seguir, qual o padrão de projetos que melhor se adequaria para modelar essa característica dinâmica do buffer? Mediator. Composite. State. Dynamic behavior. Singleton. Gabarito Comentado 4. considere a definição: Visitor: Representar uma operação a ser realizada nos elementos de uma estrutura de objetos. Visitor permite que você defina uma nova operação sem alterar as classes dos elementos nos quais a operação atua (Gamma et al., 2000). Qual das alternativas é completamente verdadeira? O principal objetivo do padrão acima é permitir que sejam adicionadas novas funcionalidades a classes previamente concebidas, sem que haja necessidade de alterar sua implementação. A idéia principal do padrão acima é implementar diferentes algoritmos em uma hierarquia de classes, onde cada um deles pode ser substituído por outro, independente do cliente que o utiliza. O padrão de projeto acima é indicado para ser utilizado quando uma abstração tem dois aspectos, um dependente do outro. Encapsular tais aspectos em objetos separados permite que variem e sejam reusados separadamente; O padrão de projeto acima deve ser utilizado não somente quando o comportamento de um objeto depende do seu estado, podendo ser alterado em tempo de execução, mas também quando a funcionalidade de um objeto possui condicionais grandes. O principal objetivo do padrão acima é conservar as funcionalidades em não se permita adicionar novas, E obriga que haja necessidade de alterar sua implementação 5. O padrão de projeto que deve ser utilizado não somente quando o comportamento de um objeto depende do seu estado, podendo ser alterado em tempo de execução, mas também quando a funcionalidade de um objeto possui condicionais grandes, chama-se: Interpreter; Proxy; Visitor ; Strategy; State; Gabarito Comentado 6. Marque a alternativa que está relacionada com o padrão de projeto que permite definir uma nova operação sem mudar as classes dos elementos sobre os quais opera. Memento State Observer Strategy Visitor Gabarito Comentado 7. Marque a alternativa que está relacionada ao padrão de projeto que é mais apropriado quando o comportamento de um objeto depende do seu estado e ele pode mudar seu comportamento em tempo de execução. Strategy Memento State Observer Visitor 8. Identifique dentre as opções abaixo, aquela que representa o padrão de projeto comportamental , cuja ideia principal é implementar diferentes algoritmos em uma hierarquia de classes, onde cada um deles pode ser substituído pelo outro, independente do cliente que o utiliza . Visitor; State; Strategy Proxi; Decorator; 1. Uma classe com acoplamento forte depende muito de outras classes. Isso pode conduzir os seguintes problemas num sistema: I. As classes são difíceis de aproveitar tendo em vista que sempre que uma classe for utilizada todas as outras das quais ela depende devem estar presentes; II. As alterações nas classes relacionadas podem forçar mudanças locais difíceis de compreender isoladamente. III. Facilidade na compreensão nas mudanças das classes no sistema. IV. Ao fazer alguma mudança numa classe também devem ser feitas mudanças nas outras que estão ligadas a esta classe. Com base nestas informações assinale a alternativa CORRETA. I, II, III II, III, IV Somente a III. I, III, IV I, II, IV 2. Marque a alternativa que está relacionada ao padrão de projeto que é auxiliar a reduzir o impacto de modificações em uma aplicação. Criador Especialista da informação Acoplamento fraco Observador State 3. Pode-se sucintamente definir o padrão Variation do GRASP como: Criar classes controladoras. Criar classe que resolva problemas de inconsistência, criando adaptações para saná-las. Criar classes altamente coesas. Criar camadas para melhor organizar a aplicação. Criar classes que permitam sobrecarga e sobreescrita. 4. qual das afirmativas abaixo não é verdadeira. Um acoplamento definido para que classes que contenham métodos que possibilitem alterações de requisitos deve ser a menor possível, desta forma se favorece futuras manutenções. acoplamento é o grau de dependência entre dois artefatos. É uma medida de quão forte um elemento está conectado ou tem conhecimento de, ou depende de outros elementos. Um alto acoplamento aumenta a dificuldade de entendimento da solução proposta, a diminuição das chances de reutilização, além de aumentar a complexidade da aplicação. Dessa forma o padrão Acoplamento Baixo é utilizado para atribuir responsabilidades de modo que o acoplamento permaneça baixo. O ideal que dois artefatos tenham alta dependência. Isto garante um bom desempenho e facilita a manutenção dos artefatos. 5. Em relação a aplicação dos padrões GRASP, para o diagrama de classe da figura acima é correto afirmar que: Padrão Criador: a Classe Obra tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Obra tem a responsabilidade de saber quantas Etapas uma determinada Obra possui. Padrão Criador: a Classe Engenheiro tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Engenheiro tem a responsabilidade de saber quantas Etapas uma determinada Obra possui. Padrão Criador: a Classe Engenheiro tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Etapa tem a responsabilidade de saber quantas Etapas uma determinada Obra possui. Padrão Criador: a Classe Obra tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Etapa tem a responsabilidade de saber quantas Etapas uma determinada Obra possui. Padrão Criador: a Classe Engenheiro tem a responsabilidade de criar instâncias da classe Obra. Padrão Especialista: a Classe Obra tem a responsabilidade de saber quantas Etapas uma determinada Obra possui. 6. Os 9 padrões definidos pela General Responsability Assignment Software Pattener são? 1.Creator; 2.High Coesion; 3.Low Coupling; 4.Controller; 5.Polymorphis; 6.Information Expert; 7.Pure Fabrication; 8.Indirection; e 9.Facade. 1.Creator; 2.High Coesion; 3.Low Coupling; 4.Controller; 5.Polymorphis; 6.Information Expert; 7.PureFabrication; 8.Indirection; e 9.Variation. 1.Creator; 2.High Coesion; 3.Low Coupling; 4.Buider; 5.Bridge; 6.Information Expert; 7.Pure Fabrication; 8.Indirection; e 9.Variation. 1.Singleton; 2.High Coesion; 3.Low Coupling; 4.Controller; 5.Polymorphis; 6.Information Expert; 7.Pure Fabrication; 8.Indirection; e 9.Variation. 1.Creator; 2.Decoretor; 3.FlyWeight; 4.Controller; 5.Polymorphis; 6.Information Expert; 7.Pure Fabrication; 8.Indirection; e 9.Variation. Um padrão controlador é o primeiro objeto além da camada de interface com o usuário que é responsável por receber ou tratar uma mensagem de operação do sistema, Este é um padrão de projeto de delegação, pois, normalmente um controlador deve delegar a outros objetos o serviço que precisa ser feito. Dentre os conceitos abaixo, assinale aquele que complementa o objtivo deste padrão. ele coordena ou controla a recursividade; ele coordena ou controla as classes; ele controla ou coordena os métodos; ele coordena ou controla a atividade; ele coordena ou controla as generalizações; Gabarito Comentado 2. São causas comuns de refactoring, exceto: Forte coesão Dependências de algoritmo Criação de objetos especificando diretamente uma classe concreta Forte acoplamento Dependência em operações específicas 3. Considere a figura abaixo E escolha a opção correta sobre a gravura: uma classe de controle exige que sempre se tem há uma classe de apresentação. Desta forma não podemos ter mais de uma classe de controle por sistema A Classe instanciada assinala como :???? É de baixo acoplamento e baixa coesão pela natureza de sua criação. A classe instanciada assinalada como :???? Permite desacoplar as classes e métodos de apresentação. E isto aumenta a reutilização das classes de negocio. A Classe instanciada assinalada como :???? Deveria estar incorporada na classe emprestar para evitar criar uma serie de novas classes. Isto facilita o projeto. A Classe instanciada assinalada como :???? Não pode ser decomposta em outros controladores. Assim temos que trabalhar com o tipo de coesão resultante (temporal, funcional...) 4. Num determinado setor de uma empresa fictícia existem 5 (cinco) funcionários contratados. Todos os funcionários são contratados com a mesma carga horária de trabalho prevista. Dois dos cinco funcionários produzem o triplo do que produzem os outros colegas de trabalho, pois além de concluir as tarefas diárias de sua própria responsabilidade, também executam as tarefas que não são concluídas pelos outros colegas. Ao final do expediente é possível observar que os dois funcionários que mais trabalham apresentam maior desgaste físico e mental, pois sempre ficam sobrecarregados com responsabilidades extras. Fazendo uma analogia com o cenário descrito acima, responda qual característica de Projeto O.O. explicaria a situação que ocorre quando uma má distribuição de responsabilidades entre 5 classes afeta a colaboração entre os objetos, concentrando responsabilidades demais em somente 2 dessas classes. Elevado Polimorfismo Elevada Herança Baixo Encapsulamento Baixa Coesão Elevado Acoplamento 5. O tipo tipos de coesão caracterizada quando um módulo executa um e somente um cálculo, e então retorna o resultado é chamada de: Comucacional Paralela; Recursiva. Em Camada; Funcional; 6. Marque a alternativa que está relacionada com o padrão GRASP utilizado para conectar a camada de interface com o usuário e a camada de negócios da aplicação? Especialista da informação Coesão alta Polimorfismo Baixo acoplamento Controlador 7. (CESPE - 2010 - INMETRO) A coesão e o acoplamento são formas de se avaliar se a segmentação de um sistema em módulos ou em componentes foi eficiente. Acerca da aplicação desses princípios, assinale a opção correta. O baixo acoplamento pode melhorar a manutebilidade dos sistemas, pois ele está associado à criação de módulos como se fossem caixas-pretas. A modularização do programa em partes especializadas pode aumentar a qualidade desses componentes, mas pode prejudicar o seu reaproveitamento em outros programas. Um benefício da alta coesão é permitir realizar a manutenção em um módulo sem se preocupar com os detalhes internos dos demais módulos. Os componentes ou os módulos devem apresentar baixa coesão e um alto grau de acoplamento. Os componentes ou os módulos devem ser fortemente coesos e fracamente acoplados. 8. Marque a alternativa que apresenta apenas padrões GRASP? Coesão alta, controlador e polimorfismo Coesão alta, polimorfismo, visitor Controlador, polimorfismo e Memento Observer, visitor, strategy Coesão alta, controlador, strategy 1. Marque dentre as opções apresentadas aquela que corresponde ao padrão de projeto que sugere atribuir um conjunto de responsabilidades altamente coesas a uma classe artificial, ou de conveniência, que não represente o domínio do problema, algo inventado, para apoiar coesão alta, acoplamento baixo e reuso. Invenção pura; Indireção; Criador Proxy; Variações protegidas; Gabarito Comentado 2. Marque a alternativa que representa o padrão GRASP que está relacionada com a seguinte questão: Como distribuir responsabilidades buscando alcançar Coesão Alta ou Acoplamento Baixo? variações protegidas controlador polimorfismo Invenção Pura Indireção 3. O padrão Indireção tem como característica: O objetivo é atribuir responsabilidade a um objeto intermediário para servir como mediador entre outros componentes ou serviços, para que eles não sejam diretamente acoplados. É 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. é o primeiro objeto além da camada de interface com o usuário que é responsável por receber ou tratar uma mensagem de operação do sistema. implica que um componente ou classe encapsule somente os atributos e operações muito relacionadas a si e com a classe do componente ou classe propriamente dito. Sugere atribuir um conjunto de responsabilidades altamente coesa a uma classe artificial ou de conveniência que não represente o domínio do problema, algo inventado, para apoiar coesão alta, acoplamento baixo e reuso. 4. O padrão Invenção Pura tem como característica: implica que um componente ou classe encapsule somente os atributos e operações muito relacionadas a si e com a classe do componente ou classe propriamente dito. Sugere atribuir um conjunto de responsabilidades altamente coesa a uma classe artificial ou de conveniência que não represente odomínio do problema, algo inventado, para apoiar coesão alta, acoplamento baixo e reuso. É 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. é o primeiro objeto além da camada de interface com o usuário que é responsável por receber ou tratar uma mensagem de operação do sistema. O objetivo é atribuir responsabilidade a um objeto intermediário para servir como mediador entre outros componentes ou serviços, para que eles não sejam diretamente acoplados. 5. O padrão de projeto variações protegidas é um princípio básico para fornecer _____________e _____________ flexibilidade e proteção contra diversos tipos de variações em um projeto orientado a objetos, Complete as lacunas com a opção correta. proteção e visibilidade; flexibilidade e acoplamento; proteção e coesão; flexibilidade e proteção; flexibilidade, proteção e visibilidade. 6. Dentre as opções abaixo, assinale aquela que sugere onde uma aplicação do padrão de projeto Invenção Pura deve criar uma nova classe específica para salvar objetos. em em um banco de dados relacional. em um banco de dados homogêneo; em um banco de dados ordenado; em em um banco de dados hierárquico; em um banco de dados integrado; Gabarito Comentado 7. O objetivo do padrão de projeto Indireção é atribuir responsabilidade a um objeto intermediário para servir como mediador entre outros componentes ou serviços, com o objetivo de? impedir que que eles sejam parcialmente acoplados impedir que que eles não sejam diretamente excluídos; permitir que que eles sejam diretamente acoplados; impedir que que eles sejam indiretamente acoplados; impedir que que eles não sejam diretamente acoplados; Gabarito Comentado 8. Marque a alternativa que representa o padrão GRASP que está relacionada com a seguinte questão: como projetar objetos e subsistemas de modo que variações não causem impactos indesejados? Invenção Pura Variações Protegidas Indireção Controlador Polimorfismo
Compartilhar