static void Main(string[] args)
        {
            // Creamos el originador
            Originador auto = new Originador("Mercedes Benz", 2020, 350000, "Gasolina");

            auto.Mostrar();


            // Creamos el caretaker
            CareTaker ct = new CareTaker();

            // Guardamos el estado
            ct.Memento = auto.CreaMemento();  //el memento que se crea queda guardado en el caretaker

            //Modificamos el objeto
            auto.Nombre      = "McLaren";
            auto.Modelo      = 1970;
            auto.Costo       = 26000;
            auto.Combustible = "Diesel";
            auto.Mostrar();


            // Restauramos el estado anterior
            auto.Restaura(ct.Memento);
            auto.Mostrar();
            Console.ReadLine();
        }
        internal void Salvar(Originador objeto)
        {
            BinaryFormatter formateador = new BinaryFormatter();
            Stream          miStream    = new FileStream("Autos.aut", FileMode.Create, FileAccess.Write, FileShare.None);

            formateador.Serialize(miStream, objeto);
            miStream.Close();

            Console.WriteLine("Se ha salvado");
        }
        internal Originador Restaurar()
        {
            BinaryFormatter formateador = new BinaryFormatter();
            Stream          miStream    = new FileStream("Autos.aut", FileMode.Open, FileAccess.Read, FileShare.None);
            Originador      temp        = (Originador)formateador.Deserialize(miStream);

            miStream.Close();

            Console.WriteLine("Se ha restaurado");
            return(temp);
        }