https://github.com/iarleyibiapina/factory_method_csharp
Este projeto demonstra a implementação do **padrão Factory Method** em C#, utilizando Docker para criar um ambiente de desenvolvimento isolado e reproduzível.
https://github.com/iarleyibiapina/factory_method_csharp
csharp design-patterns docker
Last synced: about 2 months ago
JSON representation
Este projeto demonstra a implementação do **padrão Factory Method** em C#, utilizando Docker para criar um ambiente de desenvolvimento isolado e reproduzível.
- Host: GitHub
- URL: https://github.com/iarleyibiapina/factory_method_csharp
- Owner: iarleyibiapina
- Created: 2025-04-14T02:09:25.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2025-04-15T03:40:36.000Z (about 2 months ago)
- Last Synced: 2025-04-15T15:16:25.102Z (about 2 months ago)
- Topics: csharp, design-patterns, docker
- Language: C#
- Homepage:
- Size: 4.88 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# 🏗️ Padrão Factory Method em C# com Docker



Este projeto demonstra a implementação do **padrão Factory Method** em C#, utilizando Docker para criar um ambiente de desenvolvimento isolado e reproduzível.
## 📚 Descrição
O Factory Method é um padrão criacional que permite a criação de objetos sem especificar a classe exata do objeto que será criado. Neste projeto, simulamos uma sorveteria que produz diferentes combinações de sorvetes, onde cada tipo de sorvete é criado por um factory method específico.
## 🧱 Estrutura do Projeto
```
├── Factory/
│ ├── Creators/
│ │ ├── SorveteCreator.cs # Classe abstrata criadora
│ │ ├── SorveteOneCreator.cs # Criador concreto para sorvetes individuais
│ │ └── SorveteCollectionCreator.cs # Criador concreto para coleções
│ └── Sorveteria/
│ ├── ComboSegunda.cs # Implementação concreta para segundas
│ └── ComboTerca.cs # Implementação concreta para terças
├── Interfaces/
│ └── ISorvete.cs # Interface comum para todos os sorvetes
├── Program.cs # Ponto de entrada da aplicação
├── Aps_Leonardo.csproj # Arquivo de projeto
├── Dockerfile # Configuração do container Docker
└── docker-compose.yml # Orquestração de containers
```## 🚀 Como Executar
### Pré-requisitos
- [Docker](https://www.docker.com/get-started) instalado na sua máquina### Passos para execução
1. **Construir o ambiente Docker**:
```bash
docker compose build
```2. **Iniciar o container e acessar o terminal**:
```bash
docker compose --rm run dotnet_app bash
```3. **Dentro do container, compile e execute o projeto**:
```bash
dotnet build
dotnet run
```## 🧪 Exemplo de Saída Esperada
Ao executar o projeto, você verá uma saída semelhante a:
```
Sabor: baunilha, Cobertura: chocolate, Base: copo
Sabor: chocolate, Cobertura: morango, Base: casquinha
Sorvetes criados:
Sabor: baunilha, Cobertura: chocolate, Base: copo
Sabor: baunilha, Cobertura: chocolate, Base: copo
Sabor: baunilha, Cobertura: chocolate, Base: copo
```## 🧠 Conceitos Abordados
- **Padrão Factory Method**: Permite a criação de objetos sem especificar a classe concreta
- **Programação Orientada a Objetos**: Uso de interfaces e classes abstratas
- **Docker**: Containerização do ambiente de desenvolvimento
- **SOLID Principles**: Especialmente o Princípio da Inversão de Dependência## 👤 Autor
Iarley Ibiapina
Antonio Gabriel
Bruno Teixeira
Richard Lima[](https://github.com/iarleyibiapina)