Design-Patterns

English Version

Portuguese Version

English

What are Design Patterns?

Design patterns are a fundamental part of object-oriented programming that helps make code reusable and future-proof with minimal changes.

There are four essential elements to design patterns:

  • Name: It makes it easier to think about projects and facilitates communication and understanding within the team.
  • Problem: It identifies the situation where the pattern should be applied. Typically, the pattern includes a list of conditions that must be met for its use to make sense.
  • Solution: It describes the elements that make up the design pattern, their relationships, responsibilities, and collaborations. The pattern provides an abstract description of a design problem and how a general arrangement of elements solves it.
  • Consequences: These are the results and analysis of the advantages and disadvantages of applying the pattern. It is important to remember that everything in the world of software (and even in real life) has its pros and cons. Knowing which advantages and disadvantages to choose comes from practical experience.

What is the purpose of this project?

The purpose of this project is to implement each design pattern described in the GoF book through small projects.

This will serve as a quick way for me to explain a concept to new friends in the field and allow me to practice the patterns in Java.

It's worth mentioning that there will be a readme file in each folder to serve as documentation, which should make it easier for anyone viewing this repository to understand everything correctly.

📋 Prerequisites

Portuguese

O que são padrões de design?

Os padrões de design são uma parte fundamental da programação orientada a objectos que ajuda a tornar o código reutilizável e preparado para o futuro com alterações mínimas.

Existem quatro elementos essenciais para os padrões de design:

  • Nome: Torna mais fácil pensar nos projectos e facilita a comunicação e a compreensão dentro da equipa.
  • Problema: Identifica a situação em que o padrão deve ser aplicado. Tipicamente, o padrão inclui uma lista de condições que devem ser satisfeitas para que seu uso faça sentido.
  • Solução: Descreve os elementos que compõem o padrão de projeto, seus relacionamentos, responsabilidades e colaborações. O padrão fornece uma descrição abstrata de um problema de projeto e como um arranjo geral de elementos o resolve.
  • Consequências: Estes são os resultados e a análise das vantagens e desvantagens da aplicação do padrão. É importante lembrar que tudo no mundo do software (e até mesmo na vida real) tem seus prós e contras. Saber quais vantagens e desvantagens escolher vem da experiência prática.

Qual é o objetivo deste projeto?

O objetivo deste projeto é implementar cada padrão de design descrito no livro GoF através de pequenos projectos.

Isto servirá como uma forma rápida de eu explicar um conceito a novos amigos da área e vai me permitir praticar os padrões em Java.

Vale a pena mencionar que haverá um ficheiro readme em cada pasta para servir de documentação, o que deverá facilitar a compreensão correcta de tudo por parte de quem visualizar este repositório.

📋 Pré-requisitos