public double Multiplicar(double n1, double n2) { // Se implementa patron Memento // Si la calculadora ya realizo la misma operacion previamente, retorna el resultado encontrado. // valida si es la primera iteracion, de lo contrario procede a buscar la operacion if (operacionesAnteriores.Count > 0) { foreach (var item in operacionesAnteriores) { orig.OperacionAnterior(item); Multiplicacion op = orig.GetOperacion(); // Si encuentra que ya se resolvio esa misma operacion anteriormente, retorna el resultado if (op.Numero1 == n1 && op.Numero2 == n2) { return(op.Resultado); } } } // Si la operacion no fue encontrada , la resuelve y la Agrega al Memento Multiplicacion operacion = new Multiplicacion(n1, n2); operacionesAnteriores.Add(orig.SetOperacion(operacion)); return(operacion.Resultado); }
public Memento SetOperacion(Multiplicacion pOpera) { Memento me = new Memento(pOpera); _opera = pOpera; return(me); }
public void OperacionAnterior(Memento operaAnterior) { _opera = operaAnterior.GetOperacion(); }
public Memento(Multiplicacion pOpera) { _operacion = pOpera; }