Completar la implementación en C# las clases indicadas a continuación, con sus responsabilidades y colaboraciones, también indicadas a continuación.
A continuación la descripción de las clases, sus responsabilidades de hacer y de conocer, y sus colaboraciones.
Representa un platillo individual en el menú del restaurante.
| Dish | |
|---|---|
|
Conocer el nombre del platillo Conocer el precio del platillo Conoce si el platillo es vegetariano o no |
|
-
Responsabilidades de conocer:
- Name: Conocer el nombre del platillo.
- Price: Conocer el precio del platillo.
- IsVegetarian: Conocer si el platillo es vegetariano o no.
-
No tiene responsabilidades de hacer.
-
No tiene colaboradores.
Important
Debe ser posible crear una instancia de Dish e inicializar sus propiedades
en una sola operación.
Aquí está el código provisto de la clase Dish.
Representa el conjunto de platillos disponibles en el restaurante.
| Menu | |
|---|---|
|
Conocer la lista de platillos disponibles en el restaurante Agregar un platillo a la lista de platillos del menú Eliminar un platillo de la lista del menú Buscar y devolver un platillo específico del menú basado en su nombre |
Dish |
-
Responsabilidades de conocer:
dishes: Conocer la lista de platillos disponibles en el restaurante; esta responsabilidad está ya implementada con la variable de instanciadishesen el código provisto.
-
Responsabilidades de hacer
AddDish(Dish): Agregar un platillo a la lista de platillos del menú.RemoveDish(Dish): Eliminar un platillo de la lista del menú.Dish GetDishByName(string): Buscar y devolver un platillo específico del menú basado en su nombre; retornanullsi no encuentra en platillo.
-
Colaboradores
- Dish
Tip
Puedes acceder al i-ésimo elemento de la variable de instancia dishes con
dishes[i] y las estructuras de repetición condicional que consideres
apropiadas. También puedes recorrer los platillos en esa variable de instancia
con la estructura repetitiva condicional foreach.
Aquí está el código provisto de la clase Menu.
3. Clase Table
Representa una mesa en el restaurante.
| Table | |
|---|---|
|
Conocer el número identificador de la mesa Conocer si la mesa está ocupada o no Conocer la lista de platillos que han sido ordenados en la mesa Marcar la mesa como ocupada Liberar la mesa y vaciar la lista de pedidos Agregar un platillo a los que han sido ordenados en la mesa Determinar si la mesa tiene pedidos o no |
Dish |
-
Responsabilidades de conocer:
Number: Conocer el número identificador de la mesa.IsOccupied: Conocer si la mesa está ocupada o no.Order: Conocer la lista de platillos que han sido pedidos en la mesa; esta responsabilidad está ya implementada con la variable de instanciaorderen el código provisto.
-
Responsabilidades de hacer:
Occupy(): Marcar la mesa como ocupada.Free(): Liberar la mesa y vaciar la lista de pedidos.AddToOrder(Dish): Agregar un platillo a la lista de pedidos.bool HasOrders(): Determinar si la mesa tiene pedidos o no; retornatruesi los tiene yfalseen caso contrario.
-
Colaboradores:
- Dish
Tip
El método Clear() de la clase ArrayList vacía la lista.
Important
Debe ser posible crear una instancia de Table e inicializar sus propiedades
en una sola operación.
Aquí está el código provisto de la clase Table.
Representa un mozo en el restaurante, encargado de atender mesas.
| Waiter | |
|---|---|
|
Conocer el nombre del mozo Conocer las mesas asignadas al mozo Asignar una mesa al mozo Tomar un pedido para una mesa específica y agregar el platillo a la orden de esa mesa |
Dish Table |
-
Responsabilidades de conocer:
Name: Conocer el nombre del mozo.assignedTables: Conocer las mesas asignadas al mozo; esta responsabilidad está ya implementada con la variable de instanciaassignedTablesen el código provisto.
-
Responsabilidades de hacer:
AssignTable(Table): Asignar una mesa al mozo.TakeOrder(Table, Dish): Tomar un pedido para una mesa específica y agregar el platillo a la orden de esa mesa.
-
Colaboradores:
- Dish
- Table
Important
Debe ser posible crear una instancia de Waiter e inicializar sus propiedades
en una sola operación.
Aquí está el código provisto de la clase Waiter.