An open API service indexing awesome lists of open source software.

https://github.com/ibrahimatay/design-patterns

Design patterns examples in C#, presented in a way that is easy for humans to understand and implement.
https://github.com/ibrahimatay/design-patterns

csharp-design-patterns design-patterns gang-of-four-design-patterns java-design-patterns

Last synced: 7 months ago
JSON representation

Design patterns examples in C#, presented in a way that is easy for humans to understand and implement.

Awesome Lists containing this project

README

          

# Design Patterns For Humans
[![.NET](https://github.com/ibrahimatay/Design-Patterns/actions/workflows/dotnet.yml/badge.svg?branch=main)](https://github.com/ibrahimatay/Design-Patterns/actions/workflows/dotnet.yml)

Examples of design patterns in C# are presented in a way that is easy for humans to understand and implement. These examples provide a practical and intuitive guide to the use of design patterns in C#, helping developers improve their skills and create more effective and maintainable software.

****Note***: Continuous improvements and bug fixes are made within the repository to produce better solutions.*

![image](/docs/images/desing-pattern-relationships.jpeg)

## Application Patterns
- [CQRS (Command Query Responsibility Segregation)](/DesignPatterns.CQRS/Program.cs)
- [VIPER (View, Interactor, Presenter, Entity, Router)](/DesignPatterns.VIPER/Program.cs)
- [MVC (Model, View, Controller)](/DesignPatterns.MVC/Program.cs)
- [Saga - Orchestration](/DesignPatterns.SAGAOrchestration/Program.cs)
- [Saga - Choreography](/DesignPatterns.SAGAChoreography/Program.cs)
- [Bulkhead](/DesignPatterns.Bulkhead/Program.cs)
- [Circuit Breaker](/DesignPatterns.CircuitBreaker/Program.cs)
- [Transactional Outbox](/DesignPatterns.Outbox/Program.cs)

## ***Creational***
- [Factory Method](/DesignPatterns.FactoryMethod/Program.cs)
- [Abstract Factory](/DesignPatterns.AbstractFactory/Program.cs)
- [Builder](/DesignPatterns.Builder/Program.cs)
- [Prototype](/DesignPatterns.Prototype/Program.cs)
- Singleton
- [Double Check Locking](/DesignPatterns.SingletonDoubleCheckLocking/Program.cs)
- [Fully Lazy Instantiation](/DesignPatterns.SingletonFullyLazy/Program.cs)
- [Lazy Instantiation](/DesignPatterns.SingletonLazyInitialization/Program.cs)
- [Not Thread-Safe Singleton](/DesignPatterns.SingletonNotThreadSafe/Program.cs)
- [Static Constructor Singleton](/DesignPatterns.SingletonStaticConstructor/Program.cs)

## ***Structural***
- [Adapter](/DesignPatterns.Adapter/Program.cs)
- [Proxy](/DesignPatterns.Proxy/Program.cs)
- [Facade](/DesignPatterns.Facade/Program.cs)
- [Composite](/DesignPatterns.Composite/Program.cs)
- [Bridge](/DesignPatterns.Bridge/Program.cs)
- [Flyweight](/DesignPatterns.Flyweight/Program.cs)
- [Decorator](/DesignPatterns.Decorator/Program.cs)

## ***Behavioral***
- [Command](/DesignPatterns.Command/Program.cs)
- [Iterator](/DesignPatterns.Iterator/Program.cs)
- [Memento](/DesignPatterns.Memento/Program.cs)
- [Observer](/DesignPatterns.Observer/Program.cs)
- [Strategy](/DesignPatterns.Strategy/Program.cs)
- [Template Method](/DesignPatterns.TemplateMethod/Program.cs)
- [Visitor](/DesignPatterns.Visitor/Program.cs)
- [Chain of Responsibility](/DesignPatterns.ChainOfResponsibility/Program.cs)
- [Pipeline](/DesignPatterns.Pipeline/Program.cs)
- [State](/DesignPatterns.State/Program.cs)
- [Mediator](/DesignPatterns.Mediator/Program.cs)

## References
Design patterns in this repository are based on

* [Design Patterns by The "Gang of Four"]
* [Head First: Design Patterns]
* [Wikipedia]
* [Other Documents]

[Design Patterns by The "Gang of Four"]: https://en.wikipedia.org/wiki/Design_Patterns
[Head First: Design Patterns]: http://www.headfirstlabs.com/books/hfdp/
[Wikipedia]: https://en.wikipedia.org/wiki/Software_design_pattern
[Other Documents]: docs