Breaking

Post Top Ad

Your Ad Spot

jueves, 19 de diciembre de 2019

Java Singleton

En este tutorial, aprenderemos sobre el patrón de diseño singleton y cómo aplicarlo en Java con la ayuda de ejemplos.
Singleton es un patrón de diseño en lugar de una característica específica de Java. Asegura que solo se crea una instancia de una clase.
Un patrón de diseño es como nuestra biblioteca de códigos que incluye varias técnicas de codificación compartidas por programadores de todo el mundo.

Java Singleton

Así es como podemos usar singletons en Java.
  • crear un privateconstructor que restrinja la creación de un objeto fuera de la clase
  • crea un privateatributo que se refiere al objeto singleton.
  • crear un public staticmétodo que nos permita crear y acceder al objeto que creamos. Dentro del método, crearemos una condición que nos restringe de crear más de un objeto.
Aquí hay un ejemplo.
  1. class SingletonExample {
  2. // private field that refers to the object
  3. private static SingletonExample singleObject;
  4. private SingletonExample() {
  5. // constructor of the SingletonExample class
  6. }
  7. public static SingletonExample getInstance() {
  8. // write code that allows us to create only one object
  9. // access the object as per our need
  10. }
  11. }
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. Como el método estático , se puede acceder usando el nombre de la clase.

Uso de la clase Singleton

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,
  1. class Database {
  2. private static Database dbObject;
  3. private Database() {
  4. }
  5. public static Database getInstance() {
  6. // create object if it's not already created
  7. if(dbObject == null) {
  8. dbObject = new Database();
  9. }
  10. // returns the singleton object
  11. return dbObject;
  12. }
  13. public void getConnection() {
  14. System.out.println("You are now connected to the database.");
  15. }
  16. }
  17. class Main {
  18. public static void main(String[] args) {
  19. Database db1;
  20. // refers to the only object of Database
  21. db1= Database.getInstance();
  22. db1.getConnection();
  23. }
  24. }
Cuando ejecutamos el programa, la salida será:
Ahora está conectado a la base de datos.
En nuestro ejemplo anterior,
  • Hemos creado una base de datos de clase singleton .
  • El dbObject es un campo de tipo de clase. Esto se referirá al objeto de la clase Base de datos .
  • El constructor privado Database()evita 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 clase Main , tenemos la variable de tipo de clase db1 . Estamos llamando getInstance()usando db1 para obtener el único objeto de la base de datos .
  • getConnection()Solo se puede acceder al método utilizando el objeto de la base de datos .
  • Como la base de datos puede tener solo un objeto, todos los clientes pueden acceder a la base de datos a través de una única conexión.

Es importante tener en cuenta que solo hay unos pocos escenarios (como el registro) donde los singleton tienen sentido. Incluso una conexión de base de datos generalmente no debería ser un singleton.
Le recomendamos que evite usar singletons por completo si no está seguro de usarlo o no. Más información: ¿Qué tiene de malo Singleton?

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas