"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Padrões de design em Java com exemplos

Padrões de design em Java com exemplos

Publicado em 2024-11-09
Navegar:827

Design Patterns in Java with examples

O que são padrões de design em Java?

Padrões de design são soluções reutilizáveis ​​para problemas comuns em design de software. Eles representam as melhores práticas que podem ser aplicadas a diversas situações no desenvolvimento de software, particularmente em programação orientada a objetos como Java.

Tipos de padrões de design

  • Padrões Criacionais: Lida com mecanismos de criação de objetos.
  • Padrões Estruturais: Preocupados com a forma como classes e objetos são compostos.
  • Padrões de comportamento: Foco na comunicação entre objetos.

Usos de padrões de design

  • Promova a reutilização do código.
  • Melhore a legibilidade e a manutenção do código.
  • Facilite a comunicação entre os desenvolvedores.

Exemplos de padrões de design

1. Padrão Singleton

    public class Singleton {
        private static Singleton instance;

        private Singleton() {}

        public static Singleton getInstance() {
            if (instance == null) {
                instance = new Singleton();
            }
            return instance;
        }
    }
Prós:
  • Acesso controlado a uma única instância.
  • Economiza memória evitando múltiplas instâncias.
Contras:
  • Difícil de testar devido ao estado global.
  • Pode levar a um acoplamento forte.

2. Padrão 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);
            }
        }
    }
Prós:
  • Promove um acoplamento fraco entre o sujeito e os observadores.
  • Facilmente extensível com novos observadores.
Contras:
  • Desempenho ruim se houver muitos observadores.
  • Difícil de depurar devido à comunicação indireta.

3. Padrão do Construtor

    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;
        }
    }
Prós:
  • Simplifica a criação de objetos complexos.
  • Torna o código mais legível e fácil de manter.
Contras:
  • Adiciona complexidade com várias classes de construtores.
  • Pode ser um exagero para objetos simples.

4. Padrão 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;
       }
    }
Prós:
  • Encapsula a lógica de criação de objetos.
  • Facilmente extensível para novas formas sem modificar o código existente.
Contras:
  • Adiciona classes adicionais que podem aumentar a complexidade.
  • Se não for usado corretamente, pode levar à proliferação de classes de fábrica.

A Gangue dos Quatro (GoF)

A "Gangue dos Quatro" refere-se aos autores do influente livro intitulado "Design Patterns: Elements of Reusable Object-Oriented Software". Os autores - Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides - introduziram 23 padrões de design clássicos que se tornaram a base para a engenharia de software.

Conclusão

Os padrões de design são ferramentas essenciais na programação Java que ajudam os desenvolvedores a criar sistemas robustos e de fácil manutenção. Compreender seus usos, vantagens e desvantagens é crucial para um design de software eficaz. As contribuições da Gangue dos Quatro fornecem uma base sólida para a aplicação eficaz desses padrões.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/codegreen/design-patterns-in-java-with-examples-1klg?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3