예제 #1
0
        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);
        }
예제 #2
0
        public Memento SetOperacion(Multiplicacion pOpera)
        {
            Memento me = new Memento(pOpera);

            _opera = pOpera;
            return(me);
        }
예제 #3
0
 public void OperacionAnterior(Memento operaAnterior)
 {
     _opera = operaAnterior.GetOperacion();
 }
예제 #4
0
 public Memento(Multiplicacion pOpera)
 {
     _operacion = pOpera;
 }