Questões de Concurso
Comentadas sobre padrões de projeto (design patterns) em arquitetura de software
Foram encontradas 502 questões
O uso de design patterns leva à unificação dos códigos utilizados em diferentes aplicações que utilizem o mesmo padrão.
Analise o cenário a seguir.
Um técnico de TI está desenvolvendo uma aplicação onde existe um objeto X que contém informações importantes para outros objetos, de forma de que quando o valor do objeto X mudar, os outros objetos deverão ser notificados dessa alteração. Além disso, ele precisa especificar uma sequência de etapas em uma classe, onde algumas dessas etapas deverão ser delegadas para as subclasses.
Quais os dois padrões de projetos que podem ser empregados nesse cenário?
De acordo com Gamma, padrões de projeto são soluções reutilizáveis de software orientado a objetos. Considere as três afirmativas a seguir e depois informe a alternativa correta.
I - Padrões de projeto de criação são aqueles que abstraem o processo de instanciação de objetos.
II - Padrões de projeto estruturais se preocupam com a forma como classes e objetos são compostos para formar estruturas maiores.
III - Padrões de projeto comportamentais se preocupam com algoritmos e a atribuição de responsabilidades entre objetos.
O Governo Federal, por meio do Banco Central, está desenvolvendo um sistema que possibilitará a todos os Bancos do país o acesso a algumas de suas informações. Um requisito fundamental desse sistema é que a taxa de juros utilizada em todas as transações de todos os Bancos seja a mesma e haja um único acesso a essa informação. Além disso, esse sistema deve poder ser executado em diferentes plataformas, como computadores e diversos dispositivos móveis. Para garantir que a taxa de juros seja única e para evitar a necessidade de criar diferentes soluções para cada plataforma, a empresa desenvolvedora decidiu adotar padrões de projeto. O primeiro padrão deverá garantir uma única instanciação para a classe “Taxa de juros”; e o segundo padrão deverá definir uma família de componentes para cada plataforma e uma implementação que os instancie de acordo com a plataforma na qual a aplicação estará sendo executada.
Os padrões de projeto a serem adotados nessa implementação são, respectivamente:
Considerando os conceitos de análise e projeto orientados a objetos, julgue o item subsecutivo.
De acordo com os padrões GRASP, a função do low coupling
é garantir que o acoplamento entre classes ou entidades
permaneça fraco, de forma a permitir a maior reutilização
possível.
Suponha que exista uma interface ITraduzFrase que define o método imprimeFrase(). Existem, também, as classes InglesTraduzFrase, EspanholTraduzFrase e AlemaoTraduzFrase que estendem a interface ITraduzFrase e utilizam o método imprimeFrase(). Um Analista utilizou um design pattern que cria objetos de forma dinâmica sem conhecer a classe de implementação. A classe FrasePadrao implementa esse padrão de forma que, de acordo com o idioma desejado, retorna um objeto do tipo ITraduzFrase. O objetivo é que, sendo fornecido o idioma, a frase será nele impressa, em inglês, espanhol ou alemão.
Considerando o exemplo e sabendo que a definição do padrão é "Define uma interface para criar um objeto, mas permite às classes decidirem qual classe instanciar. Este padrão permite a uma classe deferir a instanciação para subclasses.", o nome do padrão usado pelo Analista é
Considere as afirmativas abaixo a respeito dos padrões de projeto Proxy e Template Method.
I O padrão Proxy pode ser usado para controlar os direitos de acesso a outro objeto.
II O padrão Proxy pode ser usado para acessar um objeto localizado em um ambiente remoto.
III O padrão Template Method define métodos templates para a criação de objetos que seguem uma determinada regra.
IV O padrão Template Method permite definir uma família de algoritmos que podem ser substituídos dinamicamente.
Estão corretas as afirmativas
Considere as seguintes afirmativas a respeito dos padrões de projeto Facade (Fachada) e Composite.
I Uma das consequências negativas do padrão Facade é que ele aumenta o acoplamento entre os subsistemas no qual é aplicado.
II O padrão Facade define uma interface única para acesso a um subsistema, tornando mais fácil a utilização de seus serviços.
III No padrão Composite, objetos que representam composições e objetivos primitivos são tratados (chamados) de forma idêntica pelo cliente.
IV O padrão Composite permite variar dinamicamente a quantidade de objetos primitivos, mas não de objetos composite.
Estão corretas as afirmativas
Considere as afirmativas presentes no quadro abaixo a respeito dos padrões de projeto Adapter e Observer:
I Uma das implementações do padrão Adapter é realizada através do uso do mecanismo de herança múltipla.
II O padrão Observer é usado para permitir que mudanças no estado de vários objetos sejam repassadas para objetos observadores interessados.
III O padrão Adapter permite que o cliente troque os objetos Adapter e Adaptee dinamicamente.
IV O padrão Observer define a quantidade de objetos observadores (Observer) de um dado assunto (Subject) em tempo de inicialização do programa.
Estão corretas as afirmativas
O padrão Layer (Camadas) é um padrão arquitetural que pode ser usado para organização dos subsistemas de um sistema de software. Considere as seguintes afirmativas a respeito do Padrão Layer (Camadas):
I O Padrão Layer permite substituição completa de qualquer uma de suas camadas.
II O Padrão Layer (Camadas) define a estruturação de um sistema em várias camadas organizadas em uma pilha, onde camadas superiores oferecem serviços para as camadas inferiores.
III O Padrão Layer pode trazer problemas de desempenho devido à necessidade de processar cada requisição ao sistema através de diferentes camadas.
IV As camadas definidas no padrão Layer são: Interface do usuário (GUI), Autenticação/Autorização, Negócio (Business) e Dados (Data).
Estão corretas as afirmativas
Para responder a questão considere a definição abaixo.
Padrão de projeto é uma técnica que permite reutilizar em seu projeto soluções
utilizadas anteriormente em outros sistemas.
Considere as seguintes afirmativas a respeito do padrão Singleton.
I O padrão Singleton pode ser usado para determinar uma quantidade fixa de instâncias de uma classe que podem ser criadas em uma aplicação.
II A classe que implementa o padrão Singleton deve manter público seus construtores.
III A implementação comum do padrão Singleton funciona em ambientes multi-threads.
IV O padrão Singleton é implementado através de atributos e métodos estáticos na classe onde é aplicado.
Estão corretas as afirmativas
Para responder a questão considere a definição abaixo.
Padrão de projeto é uma técnica que permite reutilizar em seu projeto soluções
utilizadas anteriormente em outros sistemas.
Considere as afirmações a seguir, acerca dos padrões de projeto Template Method, Adapter
e Facade.
I O padrão Template Method faz uso do mecanismo de delegação para implementar um algoritmo.
II O padrão Template Method permite variar partes de um algoritmo e é implementado por meio de extensão de classes abstratas.
III O padrão Facade contribui para o aumento do acoplamento entre subsistemas.
IV O padrão Adapter pode ser implementado através de herança múltipla.
Estão corretas as afirmações
Para responder a questão considere a definição abaixo.
Padrão de projeto é uma técnica que permite reutilizar em seu projeto soluções
utilizadas anteriormente em outros sistemas.
Considerando o padrão de projeto Estratégia (Strategy), é correto afirmar que
Para responder a questão considere a definição abaixo.
Padrão de projeto é uma técnica que permite reutilizar em seu projeto soluções
utilizadas anteriormente em outros sistemas.
Analise as seguintes afirmativas a respeito da técnica padrão de projeto.
I Cada padrão de projeto oferece código-fonte que mostra como utilizar bibliotecas de classes diretamente em sua aplicação.
II Cada padrão de projeto busca resolver um problema recorrente de projeto de software oferecendo uma solução concreta dentro de um contexto específico.
III Todo padrão de projeto permite flexibilizar um determinado aspecto da sua aplicação.
IV Padrões de projeto representam um vocabulário comum que facilita a comunicação e a documentação do projeto.
Estão corretas as afirmativas
Julgue o item subsequente, referente a Domain Driven Design e a Design Patterns.
O padrão chain of responsibility desacopla o emissor do
receptor, fazendo passar a solicitação por uma cadeia de
receptores potenciais, ou seja, ele procura evitar o acoplamento
do remetente de uma solicitação.
Julgue o item subsequente, referente a Domain Driven Design e a Design Patterns.
O padrão observer separa o display do estado de um objeto a
partir do objeto em si e, sempre que houver mudança no estado
do objeto, permite atualizar e refletir a mudança em todos os
displays.