CodeGym /Blog Java /Random-ES /Patrones de diseño en Java [Parte 1]
Autor
Edward Izraitel
Software Engineer at Champions Oncology

Patrones de diseño en Java [Parte 1]

Publicado en el grupo Random-ES
Este es un breve artículo sobre patrones de diseño en Java. No habrá implementaciones de patrones, solo una lista de patrones en Java junto con una breve descripción de cada uno. Para aquellos que ya están familiarizados con el tema, esto será útil como revisión y resumen. Por el contrario, aquellos que están aprendiendo sobre patrones por primera vez se beneficiarán de esto como una visión general inicial del tema antes de profundizar más. Patrones de diseño en Java [Parte 1] - 1 Patrones de diseñoson soluciones listas para usar para tareas de programación frecuentes. No es una clase o biblioteca que se pueda conectar a un proyecto. Es algo más. Se implementan patrones de diseño adecuados para cada tarea en cada caso específico. Debe recordar que cuando se aplica incorrectamente o en una tarea inadecuada, un patrón de diseño puede crear muchos problemas. Sin embargo, un patrón aplicado correctamente puede ayudarlo a completar las tareas de manera fácil y sencilla.

Tipos de patrones:

  • creacional
  • estructural
  • conductual
Los patrones de creación proporcionan mecanismos de inicialización, lo que le permite crear objetos de manera conveniente. Los patrones estructurales definen las relaciones entre clases y objetos, permitiéndoles trabajar juntos. Los patrones de comportamiento se utilizan para simplificar la interacción entre entidades.

Creacional:

  • Singleton: restringe la creación de una clase a una única instancia y proporciona acceso a esa única instancia.

  • Fábrica: se usa cuando tenemos una superclase con varias subclases y necesitamos devolver una subclase según la entrada.

  • Fábrica abstracta: usa una súper fábrica para crear fábricas, que luego usamos para crear objetos.

  • Constructor: se utiliza para crear objetos complejos utilizando objetos simples. Gradualmente crea un objeto grande a partir de un objeto pequeño y simple.

  • Prototipo: ayuda a mejorar el rendimiento al crear objetos duplicados; en lugar de crear un nuevo objeto, crea y devuelve un clon de un objeto existente.

Estructural:

  • Adaptador: un convertidor entre dos objetos incompatibles. Podemos usar el patrón de adaptador para combinar dos interfaces incompatibles.

  • Compuesto: utiliza una clase para representar una estructura de árbol.

  • Proxy: proporciona la funcionalidad de otra clase.

  • Flyweight: reutiliza objetos en lugar de crear una gran cantidad de objetos similares.

  • Fachada: proporciona una interfaz simple para un cliente, que utiliza la interfaz para interactuar con el sistema.

  • Puente: hace que las clases específicas sean independientes de las clases que implementan una interfaz.

  • Decorador: agrega una nueva funcionalidad a un objeto existente sin vincularlo a su estructura.

Comportamiento:

  • Método de plantilla: define un algoritmo básico y permite a los descendientes anular algunos pasos del algoritmo sin cambiar su estructura general.

  • Mediador: proporciona una clase intermediaria que maneja toda la comunicación entre diferentes clases.

  • Cadena de responsabilidad: permite evitar una dependencia estricta entre el remitente y el destinatario de una solicitud; además, la solicitud puede ser procesada por varios objetos.

  • Observador: permite que un objeto supervise y responda a los eventos que ocurren en otros objetos.

  • Estrategia: permite cambiar las estrategias (algoritmos) en tiempo de ejecución.

  • Comando: una interfaz que declara un método para realizar una acción específica.

  • Estado: permite que un objeto cambie su comportamiento dependiendo de su estado.

  • Visitante: se utiliza para simplificar las operaciones en grupos de objetos relacionados.

  • Intérprete: define una gramática para un lenguaje simple en el dominio del problema.

  • Iterador: accede secuencialmente a elementos de una colección sin conocer su forma subyacente.

  • Memento — utilizado para almacenar el estado de un objeto; este estado se puede restaurar más tarde.

A medida que avance en el curso de CodeGym, encontrará un par de patrones en esta lista. Recomiendo las siguientes tareas sobre patrones: 1522 , 1530 , 1631 , big01 , 2912 , 3107 ... El uso inteligente de patrones de diseño conduce a un mantenimiento de código más confiable, porque además de que los patrones de diseño son buenas soluciones a problemas comunes , otros desarrolladores pueden reconocerlos, reduciendo el tiempo requerido para trabajar con cierto código.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION