Skip to content

Repositório sobre aplicação de padrões de projeto em Java.

Notifications You must be signed in to change notification settings

tibetteixeira/design-patterns-with-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Padrões de Projeto em Java

Este repositório contém implementações dos principais padrões de projeto em Java. Cada diretório dentro deste repositório é dedicado a um padrão de projeto específico, exemplificando como ele pode ser aplicado no desenvolvimento de software.

Sumário

Este projeto serve como uma coleção de exemplos práticos e explicações sobre os principais padrões de projeto no contexto de Java. A ideia é fornecer soluções reutilizáveis, organizadas e bem documentadas para problemas comuns de design de software.

Padrões de Projeto Incluídos

Abaixo estão os principais padrões de projeto implementados neste repositório:

Padrões Criacionais

  1. Singleton - Garantir que uma classe tenha apenas uma instância e fornecer um ponto global de acesso.
  2. Factory Method - Definir uma interface para criar um objeto, mas permitir que subclasses decidam qual classe instanciar.
  3. Abstract Factory - Interface para criar famílias de objetos relacionados, sem especificar suas classes concretas.
  4. Builder - Separar a construção de um objeto complexo de sua representação, permitindo a criação de diferentes representações.
  5. Prototype - Criar objetos clonando-os a partir de protótipos em vez de criar outro objeto a partir do zero.

Padrões Estruturais

  1. Adapter - Converter a interface de uma classe em outra que os clientes esperam.
  2. Bridge - Separar a abstração da implementação, permitindo que ambas evoluam independentemente.
  3. Composite - Compor objetos em estruturas de árvore para representar hierarquias parte-todo.
  4. Decorator - Anexar responsabilidades adicionais a um objeto dinamicamente.
  5. Facade - Fornecer uma interface unificada para um conjunto de interfaces em um subsistema.
  6. Flyweight - Usar o compartilhamento para suportar grandes quantidades de objetos de forma eficiente.
  7. Proxy - Fornecer um objeto substituto que controla o acesso a outro objeto.

Padrões Comportamentais

  1. Chain of Responsibility - Evitar o acoplamento do remetente de uma solicitação ao seu receptor, permitindo que mais de um objeto tenha a oportunidade de tratar a solicitação.
  2. Command - Encapsular uma solicitação como um objeto, permitindo que os parâmetros sejam passados, armazenados e manipulados.
  3. Iterator - Fornecer uma maneira de acessar os elementos de um objeto agregado sequencialmente, sem expor a sua representação subjacente.
  4. Mediator - Definir um objeto que centraliza a comunicação entre objetos, evitando o acoplamento direto entre eles.
  5. Memento - Capturar e externalizar o estado interno de um objeto sem violar o encapsulamento, permitindo que o objeto seja restaurado posteriormente.
  6. Observer - Definir uma dependência um-para-muitos entre objetos, de forma que, quando um objeto mudar de estado, todos os seus dependentes sejam notificados e atualizados automaticamente.
  7. State - Permitir que um objeto altere o seu comportamento quando o seu estado interno mudar.
  8. Strategy - Definir uma família de algoritmos, encapsular cada um deles e torná-los intercambiáveis.
  9. Template Method - Definir o esqueleto de um algoritmo, deixando alguns passos a serem implementados pelas subclasses.

About

Repositório sobre aplicação de padrões de projeto em Java.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages