Arquitetura de softwareDesign patterns
- (CESGRANRIO 2012)
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.
package ServiceLayer;
public interface ServiceA {
int srvA1();
int srvA2();
int srvA3();
}
package ServiceLayer;
public interface ServiceB {
int srvB1();
int srvB2();
}
package ServiceLayer;
public class Services {
private Services() {
}
public static ServiceA serviceA() {
return new CL01();
}
public static ServiceB serviceB() {
return new CL01();
}
}
package ServiceLayer;
class CL01 implements ServiceA, ServiceB{
public int srvA1()
{ // código irrelevante }
public int srvA2()
{ // código irrelevante }
public int srvA3()
{ // código irrelevante }
public int srvB1()
{ // código irrelevante }
public int srvB2()
{ // código irrelevante }
}
O trecho de código a seguir mostra como os serviços disponíveis são executados.
{
ServiceA s1=Services.serviceA();
ServiceB s2=Services.serviceB();
s1.srvA1();
s2.srvB1();
// código irrelevante
}
Essa arquitetura usou variações de dois padrões de projeto conhecidos, que são:
A) Adapter e Façade
B) Command e Façade
C) Command e Singleton
D) Façade e Factory Method
E) Factory Method e Singleton
Próximo:
EXERCÍCIOS - Exercício 180
Vamos para o Anterior: Exercício 178
Tente Este: Exercício 308
Primeiro: Exercício 1
VOLTAR ao índice: Arquitetura de software