Este repositório é um projeto de estudo prático dos 23 padrões de projeto (Design Patterns) da Gang of Four (GoF), organizados por categoria e implementados em .NET (C#) com exemplos em uma Web API ASP.NET.
Fornecer implementações simples, comentadas e funcionais dos padrões de projeto, visando o aprendizado prático com exemplos reais e de fácil entendimento.
DesignPatternsStudy/
├── Behavioral/ # Padrões Comportamentais (em breve)
├── Common/ # Interfaces e utilitários comuns
├── Creational/ # Padrões Criacionais
│ ├── SingletonPattern/
│ ├── FactoryMethodPattern/
│ ├── AbstractFactoryPattern/
│ ├── BuilderPattern/
│ └── PrototypePattern/
├── Structural/ # Padrões Estruturais
│ ├── AdapterPattern/ ✅
│ ├── BridgePattern/ ✅
│ ├── CompositePattern/ ✅
│ ├── DecoratorPattern/ ✅
│ ├── FacadePattern/ ✅
│ ├── FlyweightPattern/ ✅
│ └── ProxyPattern/ ✅
├── WebApi/
├── .gitignore
├── DesignPatternsStudy.sln
├── LICENSE
└── README.md
| Padrão | Descrição |
| --------- | ------------------------------------------------------------------------ |
| Adapter | Adapta uma interface de uma classe para o formato esperado pelo cliente. |
| Bridge | Separa abstração da implementação, permitindo independência entre elas. |
| Composite | Compõe objetos em estruturas de árvore para representar hierarquias. |
| Decorator | Adiciona funcionalidades a objetos dinamicamente. |
| Facade | Fornece uma interface simplificada para um subsistema complexo. |
| Flyweight | Compartilha objetos para suportar grandes quantidades de dados. |
| Proxy | Controla o acesso a outro objeto, podendo adicionar lógica extra. |
-
Clone o repositório:
git clone https://github.com/eriscript/DesignPatternsStudy.git
-
Acesse a pasta do projeto:
cd DesignPatternsStudy
-
Restaure os pacotes e compile a solution:
dotnet restore dotnet build
-
Execute a Web API para testes:
cd WebApi dotnet run
-
ProxyPattern
GET http://localhost:5278/clima/São%20Paulo
-
AdapterPattern
POST http://localhost:5278/[email protected]&mensagem=Olá
(Os endpoints variam conforme o padrão)
Erismar Nascimento
Desenvolvedor .NET | Entusiasta de Arquitetura de Software
Este projeto é licenciado sob a MIT License.