Explorando el código, creando soluciones, y compartiendo conocimientos en el fascinante mundo del desarrollo de software.

viernes, 23 de febrero de 2024

Conocimientos de Patrones de Diseño en Java

Conocimientos de Patrones de Diseño en Java

Conocimientos de Patrones de Diseño en Java

Patrón Singleton

El patrón Singleton garantiza que una clase tenga solo una instancia y proporciona un punto de acceso global a esa instancia. Aquí hay un ejemplo de implementación en Java:

// Implementación del patrón Singleton public class Singleton { private static Singleton instancia; private Singleton() { // Constructor privado para evitar instanciación directa } public static Singleton obtenerInstancia() { if (instancia == null) { instancia = new Singleton(); } return instancia; } }

En este ejemplo, la clase `Singleton` tiene un constructor privado y un método estático `obtenerInstancia()` que devuelve la única instancia de la clase, creándola si aún no existe.

Patrón Factory

El patrón Factory proporciona una interfaz para crear instancias de una clase, permitiendo a una subclase alterar el tipo de objetos que se crearán. Aquí hay un ejemplo de implementación en Java:

// Interfaz de la factoría public interface Fabrica { Producto crearProducto(); } // Implementación de la factoría public class FabricaConcreta implements Fabrica { @Override public Producto crearProducto() { return new ProductoConcreto(); } } // Interfaz del producto public interface Producto { void operacion(); } // Implementación del producto public class ProductoConcreto implements Producto { @Override public void operacion() { System.out.println("Realizando operación en ProductoConcreto"); } }

En este ejemplo, la interfaz `Fabrica` define un método para crear un producto. La clase `FabricaConcreta` implementa esta interfaz y crea instancias de `ProductoConcreto`.

Patrón Observer

El patrón Observer define una dependencia de uno a muchos entre objetos, de modo que cuando un objeto cambia su estado, todos sus observadores son notificados y actualizados automáticamente. Aquí hay un ejemplo de implementación en Java:

// Interfaz del observador public interface Observador { void actualizar(String mensaje); } // Clase concreta del observador public class ObservadorConcreto implements Observador { @Override public void actualizar(String mensaje) { System.out.println("ObservadorConcreto recibe actualización: " + mensaje); } } // Sujeto observable public class SujetoObservable { private List observadores = new ArrayList<>(); public void agregarObservador(Observador observador) { observadores.add(observador); } public void notificarObservadores(String mensaje) { for (Observador observador : observadores) { observador.actualizar(mensaje); } } }

En este ejemplo, la interfaz `Observador` define el método `actualizar`. La clase `ObservadorConcreto` implementa esta interfaz. La clase `SujetoObservable` tiene una lista de observadores y notifica a todos cuando se produce un cambio.

Conclusión

Los patrones de diseño son herramientas poderosas para la creación de software robusto y mantenible. En Java, la implementación correcta de patrones como Singleton, Factory y Observer puede mejorar la estructura y la flexibilidad de tu código, proporcionando soluciones probadas para problemas comunes de diseño.


Navegación entre lecciones



© 2024 Programar desde Cero


No hay comentarios:

Publicar un comentario

Java Iniciación en Java Hola mundo en Java Sintaxis básica de Java Orientación a objetos en Java Manejo de excepciones en Java Java desde Cero Colecciones en Java Manejo de Archivos en Java Entrada/Salida en Java Hilos y concurrencia en Java Programación Funcional en Java Programación Orientada a Objetos (OOP) en Java Manejo de fechas y tiempos Persistencia de datos en Java Desarrollo Web en Java Manejo de dependencias Gradle Maven JUnit Git Java Desarrollo de servicios web en Java Patrones de Diseño en Java Principios Básicos de Seguridad en Java Principios SOLID en Java Frameworks populares en Java Ciclo de vida de una aplicación Java Desarrollo Ágil Base de Datos en Java Hola mundo en COBOL Estructura básica de COBOL Sintaxis Básica de COBOL Manipulación de archivos en COBOL Búsqueda en Archivos Secuenciales COBOL Ordenación y Combinación de Archivos COBOL Manejo de Errores en COBOL Subprogramas y Modularidad en COBOL Archivos Indexados en COBOL Clasificación y Fusión de Archivos en COBOL Lectura y Escritura de Archivos Secuenciales COBOL IDE Desarrollo de Software Programación Java Plugin Eclipse Desarrollo Integrado Eclipse IDE Java Development Desarrollo de Aplicaciones Programación en Eclipse Desarrollo Ágil Java EE Desarrollo Web Desarrollo Móvil Eclipse Marketplace Eclipse Plugins JavaFX Desarrollo GUI Git Control de Versiones GitHub Git Bash Git Commands Git Workflow Branching Merging Repositorios Commit Git Branch Git Pull Git Push Git Clone Git Merge Conflictos en Git Git Log Git Tag Git Remote Visual Studio Code IDE Desarrollo de Software Extensiones Editor de Código Programación Configuración VSC Snippets Depuración Control de Versiones Integración Git Atajos de Teclado Temas Productividad Extensiones VSC Lenguajes de Programación