Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Padrões de projetos de software com Java
SIMULADO 1
1 - Em um sistema de vendas online, o padrão Abstract Factory é utilizado para criar objetos relacionados a diferentes categorias de produtos sem especificar suas classes concretas. Isso permite flexibilidade na adição de novas categorias de produtos.
Qual é o propósito do padrão Abstract Factory neste contexto?
A) Gerenciar o ciclo de vida de objetos complexos.
B) Permitir a construção de um objeto em múltiplas etapas.
C) Garantir que apenas uma instância de uma classe seja criada.
D) Clonar objetos mantendo seu estado original.
E) Criar uma família de objetos relacionados sem especificar suas classes concretas.
2 - Em um projeto de software para gestão de bibliotecas, o padrão Singleton é utilizado para garantir uma única instância do sistema de gerenciamento de usuários. Este padrão assegura que todas as operações de empréstimo e devolução de livros sejam gerenciadas de forma centralizada.
Qual é a principal característica do padrão Singleton utilizada neste contexto?
Garante uma única instância de uma classe em toda a aplicação.
Permite a criação de múltiplas instâncias de uma classe.
Facilita a criação de objetos complexos em etapa
Fornece uma interface para criar famílias de objetos relacionados.
Permite clonar objetos mantendo o mesmo estado.
3 - Um colega seu de trabalho está implementando a interface com o usuário de um sistema que dispara a execução de uma lógica de negócio envolvendo vários objetos. Ele implementa uma primeira versão que faz diversas chamadas a objetos da lógica de negócio porque não existe uma interface de mais alto nível disponível que encapsule esta complexidade. Para piorar, ao implementar um segundo módulo de interface com o usuário, ele se depara com o mesmo problema, tendo que copiar e colar partes da lógica utilizadas no primeiro módulo de interface com o usuário. Ao revisar o código feito pelo seu colega, qual padrão você recomendaria que ele utilizasse para diminuir o acoplamento entre os módulos de interface com o usuário e módulos referentes à lógica de negócio?
Facade
Composite
Proxy
Flyweight
Adapter
4 - Os iteradores de coleção em Java obtidos a partir da interface Collection são implementados com a aplicação de qual padrão de projeto?
Abstract Factory
Factory Method
Singleton
Prototype
Builder
5 - Você deseja criar um objeto complexo formado por diferentes partes. Para isso, você define uma interface abstrata responsável com operações representando a criação dessas partes, permitindo que as implementações concretas dessa interface criem diferentes representações dessas partes. Qual padrão de projeto você utilizaria nessa situação?
Prototype
Singleton
Abstract Factory
Builder
Factory Method
6 - Reduzir a necessidade de criar hierarquias paralelas de classes ou de criar subclasses apenas para instanciar objetos específicos é um dos efeitos obtidos com a aplicação de qual padrão?
Abstract Factory
Prototype
Singleton
Builder
Factory Method
7 - Sobre o padrão Facade, assinale a alternativa correta:
A) O padrão Facade visa fornecer aos módulos clientes uma interface de alto nível para a instanciação de objetos complexos.
B) O padrão Facade permite adicionar funcionalidades de alto nível de abstração a componentes já existentes.
C) Com a aplicação do padrão Facade, os módulos clientes podem utilizar um componente ou subsistema por meio de uma interface de alto nível.
D) O padrão Facade fornece uma interface de alto nível para a manipulação de uma hierarquia de objetos complexos.
E) Com a aplicação do padrão Facade, os módulos clientes passam a depender apenas de uma interface de alto nível oferecida por um subsistema, não podendo utilizar diretamente elementos definidos dentro desse subsistema.
8 - Fornecer uma interface de alto nível para os módulos clientes acessarem um componente ou subsistema, desacoplando os módulos clientes da estrutura interna do subsistema e reduzindo o número de elementos com os quais os módulos clientes precisam interagir para realizar um serviço. Assinale a alternativa com o nome do padrão que possui esse propósito:
Bridge
Facade
Proxy
Composite
Abstract Factory
9 - Identifique no código a seguir o padrão que está sendo utilizado para ler o arquivo texto.
Aqui está o código extraído da imagem que você enviou:
```java
public class Exemplo {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new FileReader("exemplo.txt"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
System.err.format("IOException: %s%n", e);
}
}
}
Decorator
Proxy
Facade
Bridge
Flyweight
10 - Assinale o padrão que utiliza uma fábrica de objetos de modo a gerenciar a instanciação e o compartilhamento de objetos imutáveis utilizados em larga escala em um sistema:
Adapter
Composite
Facade
Proxy
Flyweight
SIMULADO 2
1 - "Seja um cenário em que existem vários objetos capazes de realizar o processamento associado a uma requisição. Esses objetos são organizados em uma lista encadeada de modo que a requisição vai sendo passada do primeiro objeto receptor da requisição para o próximo da lista, e assim sucessivamente, até que o resultado desejado seja atingido".
Assinale a alternativa com o nome do padrão com esse propósito:
Iterator
Command
Mediator
Strategy
Chain of Responsibility
2 - Você está desenvolvendo um módulo correspondente a uma classe X que possui um ciclo de vida composto por estados e não quer escrever o código dessa classe utilizando estruturas condicionais complexas. Para isso, você separa o processamento de cada parte desse ciclo de vida em uma classe à parte. A classe X apenas guarda a referência para a situação corrente do processamento e repassa as requisições para o objeto correspondente a essa situação corrente.
Assinale o padrão a que esse texto se refere:
A) Memento
B) Command
C)Mediator
D) State
E)Chain of Responsibility
3 - Você está implementando um sistema e quer guardar o histórico de todas as requisições efetuadas pelo usuário via interface gráfica, de forma a poder realizar operações, como desfazer (undo) e refazer (redo) requisições.
Assinale a alternativa com o nome do padrão mais indicado para ser aplicado nesse contexto:
State
Strategy
Mediator
Chain of Responsibility
Command
4 - Esse padrão define uma estrutura similar à de um esquema publisher-subscriber, pois existe um publisher detentor de um conjunto de informações e registra um conjunto de objetos interessados em receber notificações de modificação desse conjunto de informações, ou seja, do estado do publisher. Ao ter o seu estado interno modificado, o publisher notifica os subscribers que, por sua vez, executam algum procedimento específico de tratamento dessa modificação. Assinale a opção com o padrão correspondente à descrição acima:
Observer
State
Template Method
Strategy
Visitor
5 - Um modulo x escreve dados em uma tabela de um banco de dados relacional que e lida por um modulo y. Se o desenvolvedor responsável pelo modulo x resolver mudar algo no esquema dessa tabela, sera preciso avaliar o impacto dessa mudança em y. Esse fato evidencia a existência de um acoplamento de que natureza entre os módulos x e y?
Acoplamento de Global
Acoplamento de Estrutura
Acoplamento de Dados
Acoplamento Externo
Acoplamento de Controle
6 - Ao invés de colocarmos o cálculo do frete de um pedido na classe Pedido, optamos por criar uma hierarquia de classes para encapsular os diferentes algoritmos de cálculo de frete que temos no sistema".
Assinale a alternativa com o nome do padrão GRASP que recomenda a criação de classes que não representam diretamente elementos concretos encontrados no domínio no negócio, seguindo uma decomposição de responsabilidades por comportamento e não por representação, como a descrita no cálculo do frete.
Indireção.
Especialista na Informação.
Invenção Pura.
Acoplamento Baixo.
Polimorfismo.
7 - Assinale a alternativa CORRETA sobre o padrão GRASP Coesão.
A- Um módulo com coesão alta reúne elementos que contribuem para que o módulo realize o seu propósito específico.
B- Um módulo com coesão baixa é aquele que possui um propósito bem definido.
C- Um módulo com coesão alta é aquele que concentra operações logicamente relacionadas envolvendo diferentes tecnologias ou sistemas externos.
D- Um módulo com coesão alta é aquele que concentra o código das funções mais importantes do sistema.
E- Um módulo com coesão baixa é aquele que depende de um pequeno conjunto de módulos.
8 - Uma mudança essencial no modelo de programação Java, com a evolução do JEE, foi o uso de anotações nas diversas tarefas de configuração dos EJBs do aplicativo. Para que serve a anotação Local no ambiente de criação de EJBs?
A. Definir um contexto de persistência local para o Session Bean.
B. Definir um Stateful Session Bean.
C. Definir um Stateless Session Bean.
D. Definir a interface de acesso às entidades do JPA.
E. Definir a interface de acesso local ao pool de EJBs.
9 - Ao trabalhar com um aplicativo corporativo, segundo a arquitetura MVC, as camadas Model e Controller são definidas ao nível do projeto interno com o terminador "ejb", e o NetBeans oferece ferramentas de automatização para a geração dos componentes necessários, com utilização de duas tecnologias específicas. Quais são as tecnologias utilizadas para as duas camadas citadas, respectivamente?
JSP e Servlet
Servlet e JPA
EJB e Servlet
JPA e EJB
JPA e JSP
10 - A arquitetura MVC (Model, View e Controller) é utilizada de forma ampla, na criação de sistemas cadastrais, e caracteriza-se pela divisão do sistema em três camadas, com objetivos específicos. Considerando a divisão utilizada pelo MVC, a interface de usuário e o componente DAO estariam, respectivamente, nas camadas:
Model e View
Controller e Model
View e Controller
View e Model
Model e Controller