Este projeto contém implementações de diversos Design Patterns em C#, com exemplos práticos de como aplicá-los no desenvolvimento de software.
- Factory Method - Criação de objetos de forma encapsulada.
- Singleton - Garante uma única instância global da classe.
- Adapter - Converte uma interface para outra esperada.
- Facade - Simplifica a complexidade de um subsistema fornecendo uma interface única.
- Strategy - Permite a troca dinâmica de algoritmos em tempo de execução.
- Observer - Notificação automática de mudanças de estado entre objetos.
git clone https://github.com/lhpvolpi/design-patterns.git
cd design-patterns- Abra o projeto no Visual Studio ou VS Code.
- Certifique-se de que a versão do .NET Core instalada seja 6.0 ou superior.
- Execute o comando:
dotnet runO projeto possui testes automatizados usando xUnit para verificar o funcionamento correto dos padrões.
dotnet testPara evitar problemas com Console.Out em testes concorrentes, a paralelização foi desativada no xUnit.
- Para desativar todos os testes paralelos, veja
AssemblyInfo.cs:[assembly: CollectionBehavior(DisableTestParallelization = true)]
/design-patterns-csharp
│── /src
│ ├── Adapters
│ ├── Facades
│ ├── Factories
│ ├── Observers
│ ├── Singletons
│ ├── Strategies
│── /tests
│ ├── AdapterTests.cs
│ ├── FacadeTests.cs
│ ├── FactoryTests.cs
│ ├── ObserverTests.cs
│ ├── SingletonTests.cs
│ ├── StrategyTests.cs
│── README.md
│── .gitignore
│── DesignPatterns.csproj
- Refactoring Guru - Design Patterns
- Livro: Design Patterns: Elements of Reusable Object-Oriented Software (Gang of Four)
- Livro: Clean Architecture - Robert C. Martin
🔥 Contribuições são bem-vindas! Faça um fork do repositório e envie um PR. 🚀