You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Practica Cafeteria - Código corregido con Singleton
usingSystem;usingSystem.Collections.Generic;namespaceCafeteriaSingleton{publicclassPedido{publicstringCliente{get;set;}publicstringBebida{get;set;}publicPedido(stringcliente,stringbebida){Cliente=cliente;Bebida=bebida;}}// ✅ Clase SingletonpublicclassRegistroPedidos{privateList<Pedido>pedidos=newList<Pedido>();// Aquí declaramos el constructor privadoprivateRegistroPedidos(){}// Posteriormente la instancia estática privadaprivatestaticRegistroPedidos_instancia;// Se agregó el candado para acceso seguro en multihiloprivatestaticreadonlyobject_candado=newobject();// Creamos el método de acceso a la instancia únicapublicstaticRegistroPedidosObtenerInstancia(){lock(_candado){if(_instancia==null){_instancia=newRegistroPedidos();}return_instancia;}}publicvoidAgregarPedido(Pedidopedido){pedidos.Add(pedido);Console.WriteLine($"📝 Pedido agregado: {pedido.Cliente} - {pedido.Bebida}");}publicvoidMostrarPedidos(){Console.WriteLine("📋 Pedidos registrados:");foreach(varpedidoinpedidos){Console.WriteLine($"- {pedido.Cliente}: {pedido.Bebida}");}}}classProgram{staticvoidMain(string[]args){varregistroBarista1=RegistroPedidos.ObtenerInstancia();registroBarista1.AgregarPedido(newPedido("Ana","Latte"));varregistroBarista2=RegistroPedidos.ObtenerInstancia();registroBarista2.AgregarPedido(newPedido("Luis","Café Americano"));Console.WriteLine("\nRegistro del barista 1:");registroBarista1.MostrarPedidos();Console.WriteLine("\nRegistro del barista 2:");registroBarista2.MostrarPedidos();Console.WriteLine("\nAhora todos comparten el mismo registro.");}}}