Questões de Concurso
Sobre padrões de projeto (design patterns) em arquitetura de software
Foram encontradas 551 questões
O padrão de projeto _________ assegura que uma classe gere apenas uma instância e forneça acesso a essa instância.
O padrão de projeto _________ organiza objetos em estruturas de árvore para representar hierarquias todo-parte. Esse padrão permite que clientes tratem objetos individuais e coleções de objetos de maneira uniforme.
O padrão de projeto _________ acrescenta responsabilidades adicionais a um objeto dinamicamente. Esse padrão fornece uma alternativa flexível para a extensão de funcionalidade em relação à solução por meio de herança.
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 o seguinte cenário:
Em um sistema em desenvolvimento, existe a necessidade de que quando um determinado objeto sofra alguma alteração, um outro grupo de objetos seja notificados de forma a realizarem o processamento adequado. Esse grupo de objetos interessado na ação é dinâmico, sendo necessário que seja feita a solicitação de inclusão ou remoção do grupo.
Baseado nesse cenário, qual padrão de projeto GoF deverá ser utilizado?
A adoção de padrões de projeto proporciona uma reutilização estratégica durante o desenvolvimento de software, uma vez que promove o reuso de soluções previamente validadas e notadamente bem conhecidas (reuso de rationale). A figura apresenta um diagrama de classes que modela o controlador responsável por controlar o nível de dificuldade de um jogo eletrônico. Vale salientar que o nível de dificuldade pode ser ajustado em tempo de execução, a partir do perfil de cada jogador.
Assinale a alternativa que representa o padrão de projetos que foi
utilizado no exemplo apresentado na figura.
Observe as afirmativas abaixo:
I. Com frequência, equipes de desenvolvimento de software escrevem classes que proveem funcionalidades similares às de outras classes já existentes. Esse padrão se aplica a qualquer contexto em que se deseja implementar funcionalidades já implementadas em outra classe, mas com interface diferente da classe já implementada. Esse padrão define uma nova classe de maneira que ela contenha uma instância da classe velha como um atributo privado, e implemente cada método da nova classe usando métodos da classe antiga.
II. Fornece uma interface unificada para um conjunto de interfaces em um subsistema. Define
uma interface de nível mais alto que torna o subsistema mais fácil de ser usado.
III. Define o esqueleto de um algoritmo em uma operação, postergando alguns passos para as subclasses. Permite que subclasses redefinam certos passos de um algoritmo sem mudar a estrutura do mesmo. Esse padrão pode ser usado para implementar as partes invariantes do algoritmo uma só vez e deixar para as subclasses a implementação do comportamento que pode variar.
IV. Evita o acoplamento do remetente de uma solicitação ao seu receptor ao dar a mais de um
objeto a oportunidade de tratar a solicitação. Encadeia os objetos receptores, passando a
solicitação ao longo da cadeia até que um objeto a trate. Esse padrão é utilizado quando
mais de um objeto pode tratar uma solicitação e o objeto que a tratará não é conhecido a
priori. O objeto que trata a solicitação é escolhido automaticamente.
V. Você começou a trabalhar em um projeto que utiliza tecnologia Java RMI. Nesse projeto, é implementado um padrão de projeto que provê um ponto através do qual um objeto controla o acesso a outro. No projeto em questão, um objeto remoto que contém a implementação real é acessado através de um outro objeto local, de forma que o objeto local controla o acesso ao remoto. Para isso, ambos possuem a mesma interface.
As afirmativas acima descrevem, respectivamente, os seguintes padrões de projeto:
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.
Oracle, 2016. Disponível em: <http://docs.oracle.com/javase/8/docs/technotes/guides/awt/ >. Acesso em: 30 jul. 2016.
Na figura, é ilustrado, de forma resumida, o diagrama de classes
dos componentes visuais AWT. Qual o padrão de projeto que
representa a estrutura de relacionamento entre as classes?
Considere os seguintes requisitos funcionais de um software de frente de caixa de uma sorveteria:
I. ao selecionar um tipo qualquer de sorvete, pode-se adicionar vários condimentos a esse sorvete (tais como coberturas de diferentes sabores, granulados etc.) e o sistema deve calcular o valor total (sorvete + condimentos) dinamicamente ao fechar o pedido;
II. ao fechar o pedido, o sistema deve permitir adaptar o tipo de pagamento (cartão de crédito ou débito com desconto);
III. ao concluir o pedido, o sistema deve permitir que o valor total e a descrição do pedido sejam enviados a outros objetos (ou módulos) do sistema que estejam interessados nesses dados.
Com base nos requisitos funcionais detalhados acima, qual dos padrões de projetos abaixo são adequados para resolver cada requisito funcional, respectivamente?
Com base nos padrões de projeto de software, analise as afirmativas.
I - O padrão GoF (Gang of Four) é dividido em quatro grupos: padrão de criação, padrão de estrutura, padrão de contexto e padrão de comportamento.
II - O padrão Singleton garante que apenas uma única instância de uma determinada classe seja instanciada durante a execução.
III - O padrão Iterator faz com que os acessos aos elementos de uma coleção de dados sejam realizados de forma sequencial.
Está correto o que se afirma em
Erich Hamma, Richard Helm, Ralph Johson e John Vlissdes, mais conhecidos como “Gang of Four”, coletaram originalmente 23 Design Pattems (Padrões de Projeto) e organizaram em 3 grupos denominados:
Assinale a alternativa correta.