La web de John

Primer post

Fecha publicación: 2011-07-20 10:19:07.0

Hola, bienvenido a mi web. Estoy trabajando en que tenga cosas menos aburridas que este mensaje, por favor ten algo de paciencia.

Mientras tanto, uno de mis patrones favoritos (en Java):

/**
 * Singleton con acceso sincronizado para ser thread-safe
 */
public final class Singleton {

	private static Singleton instance = null;
	
	public static Singleton getInstance() {
		// chequeo rapido no sincronizado
		if (instance == null) {
			// es null, sincronicemos para que solo 1 thread se asegure 
			// de crear la instancia.
			// usamos la misma clase para sincronizar
			synchronized (Singleton.class) {
				// ahora si, el chequeo real:
				if (instance == null) {
					// y creamos la instancia :D
					instance = new Singleton();
				}
			}
		}
		return instance;
	}
	
	/**
	 * Constructor default privado, para que no se
	 * pueda construir un objeto desde afuera
	 */
	private Singleton() {
	}
}

Algún día espero que se pueda hacer simplemente así:

@Singleton
public final class Singleton {
	
}

Última actualización: 29 de Enero de 2012

purple network