- Controle de Atendimento de Comandas
Um garçon anota os pedidos das mesas e entrega ao balcão. O pessoal do balcão é responsável
pelo atendimento da bebida. A comida é responsabilidade da cozinha. Quando o balcão recebe a
comanda, repassa imediatamente à cozinha. O restaurante tem um esquema de “Pedido Casado”
(Combo). Cada Combo é composto de bebida, prato principal, salada e sobremesa. Quando a
cozinha termina sua parte do Combo (prato principal, salada e sobremesa) é avisado o balcão, que
adiciona a bebida e avisa o garçon responsável da comanda. Os Combos estão representados na
tabela abaixo.
Combo Bebida Prato Principal Salada Sobremesa
1 Coca Feijão Couve Salada de frutas
2 Suco Macarrão Agrião Mousse
3 Coca Risoto Tomate Mousse
4 Água Macarrão Tomate Gelatina
Com base nessas informações, desenvolva um modelo de classes aplicando os padrões Abstract
Factory, Singleton e Listener. Crie uma classe de sistema para realizar algumas simulações.
Esse foi o exercício proposto pelo professor, não quero que resolvam pra mim nem nada, é um exercício de estudo e quero que role sugestões e uma discussão sobre o uml desse ‘sistema’.
Como ele sugeriu o uso dos 3 padrões de projeto: Observer, Abstract Factory e Singleton, eu modelei mais ou menos assim.
O Padrão Abstract Factory eu apliquei assim:
Fiz uma interface ComboFactory que cria o Combo1, Combo2 e etc…
O produto da factory seria, salada, sobremesa, prato principal e bebida.
Classes resumidas:
[code]public interface ComboFactory {
Bebida getBebida();
}
AbsProduct:
public interface Bebida {
String nomeBebida();
}
a classe combo1 por exemplo, ficaria assim então:
public class Combo1 implements ComboFactory {
public Bebida getBebida() {
Coca bebida = new Coca();
return bebida;
}
}[/code]
Aí aplicaria o padrão observer para a cozinha avisar o balcao quando tievsse pronto e o balcao avisar o garçom.
alguem sabe me explicar como ficaria mais ou menos essa parte?
Outra coisa, alguém tem idéia de como seria o método pro garçom entregar pro balcão?
Valeu