// Realizar contacto: comprueba que el código de la tarjeta sea correcto. // En caso de que lo sea, abre la puerta. public override void RealizarContacto(Central central) { if (tarjetaCorrecta(central.Codigotarjeta)) { Console.WriteLine("Contacto realizado"); } else { Console.WriteLine("Código de tarjeta inválido"); } }
// Este método realizará el control de acceso sobre el método original. // Realizará una comprobación previa comparando el código de seguridad y, si este es // correcto, invocará el método del objeto real. public override void RealizarContacto(Central central) { // Realizamos una comprobación adicional de seguridad. En caso de no cumplirse, se // aborta la operación. Esta operación podría ser la ejecución de un algoritmo para // comprobar la autenticidad del código de la , una comprobación de nombre de // usuario y contraseña... o cualquier otra comprobación que queramos realizar. if (central.CodigoSeguridad > tarjetaOriginal.Codigotarjeta.ToString().GetHashCode()) { Console.WriteLine("Código de seguridad incorrecto. Puerta no abierta"); return; } if (tarjetaCorrecta(central.Codigotarjeta)) { Console.WriteLine("Contacto realizado"); } else { Console.WriteLine("Código de la tarjeta inválido"); } }
// Métodos abstractos que implementarán el elemento real y el proxy public abstract void RealizarContacto(Central central);