SóProvas


ID
2245672
Banca
COPEVE-UFAL
Órgão
UFAL
Ano
2016
Provas
Disciplina
Arquitetura de Software
Assuntos

Considere os seguintes requisitos funcionais de um software de frente de caixa de uma sorveteria:

I. ao selecionar um tipo qualquer de sorvete, pode-se adicionar vários condimentos a esse sorvete (tais como coberturas de diferentes sabores, granulados etc.) e o sistema deve calcular o valor total (sorvete + condimentos) dinamicamente ao fechar o pedido;

II. ao fechar o pedido, o sistema deve permitir adaptar o tipo de pagamento (cartão de crédito ou débito com desconto);

III. ao concluir o pedido, o sistema deve permitir que o valor total e a descrição do pedido sejam enviados a outros objetos (ou módulos) do sistema que estejam interessados nesses dados.

Com base nos requisitos funcionais detalhados acima, qual dos padrões de projetos abaixo são adequados para resolver cada requisito funcional, respectivamente?

Alternativas
Comentários
  • Padrões de Estrutura (Structural):


    - Decorator - Atribui responsabilidade adicionais a um objeto dinamicamente. O Decorator fornece uma alternativa flexível a subclasses para a extensão da funcionalidade.
     

     

    Padrões de Comportamento (Behavioral)

     

    - Strategy - Permite que uma família de algoritmos seja utilizada de modo independente e seletivo.

    - Observer - Define uma relação de dependência 1:N de forma que quando um certo objeto (assunto) tem seu estado modificado os demais (observadores) são notificados; Possibilita baixo acoplamento entre os objetos observadores e o assunto.

     

    Fonte: http://www.macoratti.net/vb_pd1.htm

  • Pegadinha! A II fala em adaptar, mas o padrão Adapter serve para criar uma nova interface para uma implementação existente.

    Padrão Strategy permite essa troca de implementações

    Alternativa B

  • Strategy - Encapsula comportamentais intercambiáveis e usa a delegação para decidir qual deles será usado.