Questões de Arquitetura de Software - Padrões de projeto (Design Patterns) para Concurso
Foram encontradas 534 questões
Esse padrão de projeto é conhecido como
Considere os seguintes objetivos de padrões de projeto.
1. Separa a construção de um objeto complexo da sua representação, de forma que o mesmo processo de construção possa criar diferentes representações, ou seja, serve para encapsular a construção de um produto e permitir que ele seja construído em etapas.
2. Atribui responsabilidades adicionais a um objeto dinamicamente. Ele fornece uma alternativa flexível a subclasses para a extensão da funcionalidade, ou seja, envelopa um objeto para fornecer novos comportamentos.
3. Usa compartilhamento para dar suporte a vários objetos de forma eficiente, ou seja, permite que uma instância de uma classe possa ser usada para fornecer muitas “instâncias virtuais”.
4. Torna possível salvar o estado de um objeto de modo que o mesmo possa ser restaurado, ou seja, permite restaurar um objeto a um dos seus estados prévios, por exemplo, quando o usuário seleciona um “desfazer”.
Correspondem, correta e respectivamente, aos objetivos de padrões de projeto:
Um grupo de desenvolvedores resolveu criar a sua própria biblioteca para compartilhar implementações de estruturas de dados típicas. A primeira dessas estruturas é uma pilha. Para tal, eles definiram a seguinte interface:
Para não perderem muito tempo, resolveram reutilizar o máximo de código possível das bibliotecas nativas de Java. Assim sendo, decidiram utilizar a classe ArrayList do pacote java.util.
Por último, criaram a seguinte classe para implementar a interface Pilha:
Qual padrão de projeto foi empregado na implementação da classe PilhaLib?
O software que controla a venda de títulos privados de um banco de investimentos tem de ser flexível o suficiente para acomodar as variações nos procedimentos de venda de CDBs, letras de câmbio e debêntures. Entretanto, a sequência na qual esses procedimentos são executados é a mesma para todos os tipos de títulos. Sendo assim, os projetistas desse software adotaram o design descrito a seguir.
Em primeiro lugar, criaram uma classe abstrata contendo um método concreto, chamado compra(), que implementa a sequência de execução dos procedimentos, que é comum a todos os tipos de títulos, mas deixaram em aberto, por meio de métodos abstratos, a implementação de cada procedimento. Essa classe, chamada TituloPrivado, é mostrada a seguir.
O passo seguinte foi criar subclasses específicas para cada um dos três tipos de títulos. Cada subclasse implementa os seus próprios procedimentos, por meio da concretização dos métodos abstratos da classe TituloPrivado. Isso é exemplificado pela classe Debenture, mostrada a seguir.
A realização de uma compra será feita por meio da instanciação de uma das subclasses concretas da classe TituloPrivado e da posterior execução do método compra(), que irá acionar os métodos que implementam os procedimentos específicos do tipo de título instanciado.
Qual padrão de projeto foi empregado nesse design?
Deseja-se implementar uma solução para o desenvolvimento de um display, o qual mostra o estado de um objeto X a partir do objeto em si, utilizando-se padrão de projeto. Displays alternativos são fornecidos, e a necessidade principal é que todos eles sejam automaticamente notificados e atualizados para refletir a mudança ocorrida quando o estado do objeto mudar.
Para resolver esse problema, é mais adequado o uso do padrão