"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Patrones de diseño en Java con ejemplos.

Patrones de diseño en Java con ejemplos.

Publicado el 2024-11-09
Navegar:972

Design Patterns in Java with examples

¿Qué son los patrones de diseño en Java?

Los patrones de diseño son soluciones reutilizables a problemas comunes en el diseño de software. Representan las mejores prácticas que se pueden aplicar a diversas situaciones en el desarrollo de software, particularmente en programación orientada a objetos como Java.

Tipos de patrones de diseño

  • Patrones de creación: Se ocupan de los mecanismos de creación de objetos.
  • Patrones estructurales: Se refieren a cómo se componen las clases y los objetos.
  • Patrones de comportamiento: Centrarse en la comunicación entre objetos.

Usos de los patrones de diseño

  • Promover la reutilización del código.
  • Mejorar la legibilidad y el mantenimiento del código.
  • Facilitar la comunicación entre desarrolladores.

Ejemplos de patrones de diseño

1. Patrón único

    public class Singleton {
        private static Singleton instance;

        private Singleton() {}

        public static Singleton getInstance() {
            if (instance == null) {
                instance = new Singleton();
            }
            return instance;
        }
    }
Ventajas:
  • Acceso controlado a una única instancia.
  • Ahorra memoria evitando múltiples instancias.
Contras:
  • Difícil de probar debido al estado global.
  • Puede provocar un acoplamiento estrecho.

2. Patrón de observador

    import java.util.ArrayList;
    import java.util.List;

    interface Observer {
        void update(String message);
    }

    class Subject {
        private List observers = new ArrayList();

        public void addObserver(Observer observer) {
            observers.add(observer);
        }

        public void notifyObservers(String message) {
            for (Observer observer : observers) {
                observer.update(message);
            }
        }
    }
Ventajas:
  • Promueve un débil acoplamiento entre el sujeto y los observadores.
  • Fácilmente ampliable con nuevos observadores.
Contras:
  • Mal desempeño si hay muchos observadores.
  • Difícil de depurar debido a la comunicación indirecta.

3. Patrón de constructor

    class Product {
        private String part1;
        private String part2;

        public void setPart1(String part1) { this.part1 = part1; }
        public void setPart2(String part2) { this.part2 = part2; }
    }

    class Builder {
        private Product product = new Product();

        public Builder buildPart1(String part1) {
            product.setPart1(part1);
            return this;
        }

        public Builder buildPart2(String part2) {
            product.setPart2(part2);
            return this;
        }

        public Product build() {
            return product;
        }
    }
Ventajas:
  • Simplifica la creación de objetos complejos.
  • Hace que el código sea más legible y fácil de mantener.
Contras:
  • Agrega complejidad con múltiples clases de constructor.
  • Puede ser excesivo para objetos simples.

4. Patrón de fábrica

    interface Shape {
       void draw();
    }

    class Circle implements Shape {
       public void draw() { System.out.println("Drawing a Circle"); }
    }

    class Rectangle implements Shape {
       public void draw() { System.out.println("Drawing a Rectangle"); }
    }

    class ShapeFactory {
       public Shape getShape(String shapeType) {
          if (shapeType == null) return null;
          if (shapeType.equalsIgnoreCase("CIRCLE")) return new Circle();
          if (shapeType.equalsIgnoreCase("RECTANGLE")) return new Rectangle();
          return null;
       }
    }
Ventajas:
  • Encapsula la lógica de creación de objetos.
  • Fácilmente ampliable para nuevas formas sin modificar el código existente.
Contras:
  • Agrega clases adicionales que pueden aumentar la complejidad.
  • Si no se utiliza correctamente, puede provocar una proliferación de clases de fábrica.

La banda de los cuatro (GoF)

La "Banda de los Cuatro" se refiere a los autores del influyente libro titulado "Patrones de diseño: elementos de software orientado a objetos reutilizables". Los autores, Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides, introdujeron 23 patrones de diseño clásicos que se han convertido en la base de la ingeniería de software.

Conclusión

Los patrones de diseño son herramientas esenciales en la programación Java que ayudan a los desarrolladores a crear sistemas robustos y fáciles de mantener. Comprender sus usos, ventajas y desventajas es crucial para un diseño de software eficaz. Las contribuciones de la Banda de los Cuatro proporcionan una base sólida para aplicar estos patrones de manera efectiva.

Declaración de liberación Este artículo se reproduce en: https://dev.to/codegreen/design-patterns-in-java-with-examples-1klg?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3