Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — CESGRANRIO 2012

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
cg049467
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2012
Nível
Superior
Cargo
Analista de Sistemas Júnior - Engenharia de Software
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:
  1. AAdapter e Façade
  2. BCommand e Façade
  3. CCommand e Singleton
  4. DFaçade e Factory Method
  5. EFactory Method e Singleton
Revelar gabarito e comentário

GabaritoD — Façade e Factory Method

Link permanente: /questoes/cg049467