Clase única de Java
Clase única de Java
En este tutorial, aprenderemos a implementar Singleton Design Pattern en Java con la ayuda de ejemplos.
En Java, Singleton es un patrón de diseño que asegura que una clase solo puede tener un objeto.
Para crear una clase singleton, una clase debe implementar las siguientes propiedades:
- Crea un
private
constructor de la clase para restringir la creación de objetos fuera de la clase. - Crea un
private
atributo del tipo de clase que se refiere al objeto único. - Crea un
public static
método que nos permite crear y acceder al objeto que creamos. Dentro del método, crearemos una condición que nos impida crear más de un objeto.
Ejemplo:sintaxis de clase Java Singleton
class SingletonExample {
// private field that refers to the object
private static SingletonExample singleObject;
private SingletonExample() {
// constructor of the SingletonExample class
}
public static SingletonExample getInstance() {
// write code that allows us to create only one object
// access the object as per our need
}
}
En el ejemplo anterior,
private static SingletonExample singleObject
- una referencia al objeto de la clase.private SingletonExample()
- un constructor privado que restringe la creación de objetos fuera de la clase.public static SingletonExample getInstance()
- este método devuelve la referencia al único objeto de la clase. Dado que el método static , se puede acceder usando el nombre de la clase.
Uso de Singleton en Java
Los singletons se pueden usar mientras se trabaja con bases de datos. Se pueden usar para crear un grupo de conexiones para acceder a la base de datos mientras se reutiliza la misma conexión para todos los clientes. Por ejemplo,
class Database {
private static Database dbObject;
private Database() {
}
public static Database getInstance() {
// create object if it's not already created
if(dbObject == null) {
dbObject = new Database();
}
// returns the singleton object
return dbObject;
}
public void getConnection() {
System.out.println("You are now connected to the database.");
}
}
class Main {
public static void main(String[] args) {
Database db1;
// refers to the only object of Database
db1= Database.getInstance();
db1.getConnection();
}
}
Cuando ejecutamos el programa, la salida será:
You are now connected to the database.
En nuestro ejemplo anterior,
- Hemos creado una clase singleton Base de datos .
- El dbObjeto es un campo de tipo de clase. Esto se referirá al objeto de la clase Database .
- El constructor privado
Database()
impide la creación de objetos fuera de la clase. - El método de tipo de clase estática
getInstance()
devuelve la instancia de la clase al mundo exterior. - En la Principal clase, tenemos la variable de tipo de clase db1 . Estamos llamando
getInstance()
usando db1 para obtener el único objeto de la Base de datos . - El método
getConnection()
solo se puede acceder usando el objeto de la Base de datos . - Desde la Base de datos puede tener un solo objeto, todos los clientes pueden acceder a la base de datos a través de una única conexión.
Singleton es un patrón de diseño en lugar de una característica específica de Java. Un patrón de diseño es como nuestra biblioteca de código que incluye varias técnicas de codificación compartidas por programadores de todo el mundo.
Es importante tener en cuenta que solo hay unos pocos escenarios (como el registro) en los que los singletons tienen sentido. Le recomendamos que evite usar singletons por completo si no está seguro de usarlos o no. Más información:¿Qué tiene de malo Singleton?
Java