Filtrar


Questões por página:

Um sistema está organizado segundo uma arquitetura em camadas, no qual cada camada corresponde a um pacote Java. A camada de serviços, ServiceLayer, possui dezenas de classes, que colaboram entre si para fornecer os serviços necessários. Para facilitar o acesso aos serviços disponíveis, o pacote em questão disponibiliza algumas interfaces, que agrupam operações de acordo com a natureza do serviço. As classes que implementam esses serviços, entretanto, não são visíveis fora do pacote. Dessa forma, o pacote fornece uma classe pública, Services, onde existem métodos estáticos que retornam objetos que implementam os serviços disponíveis. O código Java a seguir exemplifica o que foi descrito.



Essa arquitetura usou variações de dois padrões de projeto conhecidos, que são:

O design baseado em responsabilidades é um método bastante difundido de design orientado a objetos.

Qual ferramenta é usada por essa abordagem para o registro informal de possíveis colaborações entre os objetos de uma aplicação?

Deseja-se que uma aplicação possa manipular diferentes tipos de bancos de dados de modo transparente às classes que necessitam de serviços de acesso a dados. Inicialmente será necessário fornecer suporte a bancos de dados XML e SQL, entretanto novos tipos poderão ser futuramente adicionados.

A solução proposta é a seguinte:

1. Uma classe abstrata (DB) será responsável por instanciar um objeto correspondente ao tipo de banco de dados desejado. Isso será feito através do método estático getDB(), que irá retornar um objeto de uma de suas subclasses concretas, de acordo com o parâmetro (tipo) passado.

2. O objeto criado no passo anterior irá instanciar conexões e consultas correspondentes ao tipo de DB criado; isto é, caso um DB XML tenha sido instanciado, apenas consultas XML e conexões XML serão instanciadas; caso um DB SQL tenha sido instanciado, apenas consultas SQL e conexões SQL serão instanciadas.

O diagrama de classe a seguir ilustra a estrutura descrita acima.



Qual padrão de projeto foi utilizado na solução proposta?

No Processo Unificado, a(o)
Uma aplicação Java precisa manter na memória principal do computador uma coleção de objetos com as seguintes características:

• poderá conter dezenas de milhares de objetos;

• seus objetos não estarão ordenados;

• um número considerável de objetos poderá ser inserido em tempo de execução;

• a operação mais executada será o percurso sequencial na ordem inversa de inserção dos objetos na coleção.

Diante dessas características, qual das classes irá proporcionar à aplicação a melhor performance em relação à manipulação dessa coleção?