Prévia do material em texto
10/11/2021 16:01 Estácio: Alunos https://simulado.estacio.br/alunos/?p0=186165540&user_cod=1935565&matr_integracao=201708371672 1/5 Simulado AV Teste seu conhecimento acumulado Disc.: PADRÕES DE PROJETO DE SOFTWARE Aluno(a): THIAGO SARAIVA DOS SANTOS 201708371672 Acertos: 4,0 de 10,0 03/11/2021 Acerto: 1,0 / 1,0 Esses são padrões de projeto GoF estudados em aula, EXCETO: Strategy Observer Workflow Facade Adapter Respondido em 03/11/2021 22:32:30 Gabarito Comentado Acerto: 1,0 / 1,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. A legibilidade da solução final, ou seja, para entender como um objeto é criado e sob quais condições, fica comprometida 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. Respondido em 03/11/2021 22:32:38 Explicação: O padrão Builder é um padrão de cuja intenção é a Construção, ou seja, são padrões cuja responsabilidade é a CONSTRUÇÃO O padrão Builder tenta minimizar a carga que os desenvolvedores tem ao ato de criar objetos dentro de um construtor. Isso é comum em desenvolvedores iniciantes. Questão1 a Questão2 a https://simulado.estacio.br/alunos/inicio.asp javascript:voltar(); 10/11/2021 16:01 Estácio: Alunos https://simulado.estacio.br/alunos/?p0=186165540&user_cod=1935565&matr_integracao=201708371672 2/5 Acerto: 0,0 / 1,0 Qual padrão de projeto representado na figura abaixo? Creator High coehsion Low coupling Chain of Responsability Adapter Respondido em 03/11/2021 22:32:47 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. 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. Acerto: 0,0 / 1,0 Qual padrão de projeto tem como propósito prover interface unificada para conjunto de interfaces em um subsistema, definindo uma interface de alto-nível. Factory Method Decorator Strategy Facade Singleton Respondido em 03/11/2021 22:32:53 Explicação: O Padrão Façade é do tipo estrutural . É usado quando um sistema é muito complexo ou difícil de Questão3 a Questão4 a 10/11/2021 16:01 Estácio: Alunos https://simulado.estacio.br/alunos/?p0=186165540&user_cod=1935565&matr_integracao=201708371672 3/5 entender, já que possui um grande número de classes independentes ou se trechos de código fonte estão indisponíveis. Este padrão esconde as complexidades de um sistema maior e provê uma interface simplificada ao cliente. Tipicamente envolve uma única classe responsável por englobar uma série de membros requeridos pelo cliente. Estes membros acessam o sistema em nome do Façade e escondem os detalhes de implementação. Acerto: 1,0 / 1,0 Dentre as opções apresentadas, assinale aquela que corresponde ao padrão de projeto que sugere a implementação de um algoritmo que faz uso de diferentes métodos, diferenciando das soluções convencionais por deixar o esqueleto deste algoritmo fixo em uma superclasse abstrata. Interpreter; Flyweight Template Method Proxy; Chain of Responsability, Respondido em 03/11/2021 22:32:55 Gabarito Comentado Acerto: 1,0 / 1,0 O padrão Memento é um Padrão Comportamental GoF. Como se dá a implementação desse padrão? I- Cria-se uma classe privada chamada Memento (ou outro nome com funcionalidades similar) dentro da classe que se pretende salvar o estado; II- Define um objeto que encapsula a forma como um conjunto de objetos interage. Memento promove o acoplamento fraco ao evitar que os objetos se refiram explicitamente uns aos outros, permitindo que você varie suas interações independentemente; III- A classe Memento deve ser instanciada com os atributos que se pretende salvar, fornecendo um construtor público para este fim; Est(á)ão correta(s) a(s) afirmativa(s): Somente o item III; Somente os itens I e III; Somente o item II; Somente os itens I e II; Somente o item I; Respondido em 03/11/2021 22:33:02 Explicação: O objetivo do padrão 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 O item II está incorreto, porque isso ocorre para o padrão Mediator. Questão5 a Questão6 a 7a 10/11/2021 16:01 Estácio: Alunos https://simulado.estacio.br/alunos/?p0=186165540&user_cod=1935565&matr_integracao=201708371672 4/5 Acerto: 0,0 / 1,0 Qual padrão é melhor usado para um sistema Desktop? Observer; State; Visitor; Strategy; Memento; Respondido em 03/11/2021 22:33:05 Explicação: Esta opção está correta porque o objetivo do padrão Observer é definir uma dependência um-para-muitos entre objetos para que quando um objeto mudar de estado, todos os seus dependentes sejam notificados e atualizados automaticamente. O Observer tem uma característica diferente. É muito usado em sistema desktop. Acerto: 0,0 / 1,0 Nos padrões GRASP (General Responsability Assigment Software Patterns), as responsabilidades de um projeto podem ser divididas em ¿conhecer¿ e ¿fazer¿. Assinale o conceito CORRETO. No conhecer, eu delego quem é o responsável por saber o estado de uma determinada classe; No conhecer, eu delego a responsabilidade de quem é que vai ser responsável por criar; As responsabilidades ¿conhecer¿ estão relacionadas com a distribuição do comportamento do sistema entre as classes; As responsabilidades ¿fazer¿ estão relacionadas à distribuição das características do sistema entre as classes; No fazer, vai demonstrar quem é que vai saber o estado; Respondido em 03/11/2021 22:33:09 Explicação: Esse conceito está CORRETO porque: As responsabilidades ¿conhecer¿ estão relacionadas à distribuição das características do sistema entre as classes. As responsabilidades ¿fazer¿ estão relacionadas com a distribuição do comportamento do sistema entre as classes. No fazer, eu delego a responsabilidade de quem é que vai ser responsável por criar. No conhecer, vai demonstrar quem é que vai saber o estado. Acerto: 0,0 / 1,0 O Paradigma Orientado a Objetos com os padrões de responsabilidades GRASP definem que a melhor técnica Questão Questão8 a Questão9 a 10/11/2021 16:01 Estácio: Alunos https://simulado.estacio.br/alunos/?p0=186165540&user_cod=1935565&matr_integracao=201708371672 5/5 de programação POO é: Desenvolver as classes sem coesão e com acoplamento. Desenvolver as classes com a menor coesão e maior acoplamento possível. Desenvolver as classes com a maior coesão e maior acoplamento possível. Desenvolver as classes com a maior coesão e menor acoplamento possível. Desenvolver as classes com a menor coesão e menor acoplamento possível. Respondido em 03/11/2021 22:33:11 Acerto: 0,0 / 1,0 Marque dentre as opções apresentadas aquela que corresponde ao padrão de projeto que sugere atribuirum 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. Indireção; Variações protegidas; Proxy; Invenção pura; Criador Respondido em 03/11/2021 22:33:14 Gabarito Comentado Questão10 a javascript:abre_colabore('38403','271372985','4962162576');