Java - Reinicialización de variables

 
Vista:

Reinicialización de variables

Publicado por Luis (1 intervención) el 22/02/2017 16:01:40
Muy buenas

Estoy programando una página web y en el controlador tnego el siguiente código:

carrito carrito = null;

if(carrito==null){
carrito.añadirDisco(disco, cantidad);
}
else{
carrito = new carrito(disco,cantidad);
}

Necesito la inicialización primera a null para que me permita usar carrito en el if pero el problema es que la página a la que se envían estos datos tiene que volver a acceder a este código porque es una función recursiva que me permite añadir más elementos en siguientes iteraciones.

Como puedo hacer para que el carrito no se me inicialice cada vez que se ejecuta el controlador?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Reinicialización de variables

Publicado por Rubén (24 intervenciones) el 23/02/2017 10:54:49
Hola buenas!!

1
2
3
4
5
6
if(carrito!=null){
carrito = new carrito(disco,cantidad);
}
else{
carrito.añadirDisco(disco,cantidad);
}

También puedes ver los patrones de diseño como el Singleton, te dejo un ejemplo:

Singleton (instancia única): garantiza la existencia de una única instancia para una clase y la creación de un mecanismo de acceso global a dicha instancia. Restringe la instanciación de una clase o valor de un tipo a un solo objeto. A continuación se muestra un ejemplo de este patrón:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public sealed class Singleton
{
    private static volatile Singleton instance;
    private static object syncRoot = new Object();
    private Singleton()
    {
        System.Windows.Forms.MessageBox.Show("Nuevo Singleton");
    }
    public static Singleton GetInstance
    {
        get
        {
            if (instance == null)
            {
                lock(syncRoot)
                {
                    if (instance == null)
                    instance = new Singleton();
                }
            }
            return instance;
        }
    }
}


Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar