This projects contains most of object oriented design patterns implemented in C# 8
This is an update of the old/legacy project [removed]
Notes: Both Concurrency patterns, Functional Patterns does not implemented here yet
-
you should familiar with advanced and most recent c# 8 features
- you may need some C++/17+ knowledge in some patterns implementations
-
You should read at least one book about design pattern and solid principles
-
if you main C++ developer, you should start with Design Patterns: Elements of Reusable Object-Oriented Software
- you will need to know legacy C++ code, so if you just mess with C++ start from C++11, you may find some strange pieces of code, since many thing has been changed , but i prefere to study old c++3 specifications cppreference and then read this book, just notice cppreference altered c++98 and c++03 due to legacy code base conflication and buggy implementations, but there is some resources
-
if you a pure C# developer: Dofactory-Design-Patterns
-
You can search in google for
design patterns
and you will find a lot of books , toutrials and videos
-
-
You must read the source code in ordered way
- For Patterns we will explains the order below
- For patterns implementations every files should start with {C}_[N]_description
- You must track this order :
- For example :
A_1_VectorRasterNoCaching.cs
comes beforeA_2_VectorRasterWithCaching.cs
in adapter pattern
-
Every Pattern Directory should have *.md file to describe that pattern
Not Completed Yet
-
Solid Principles :
may not contains any implementation
- SingleResponsibility
- OpenClosed
- LiskovSubstitution
- InterfaceSegregation
- DependencyInversion
-
Creational Patterns
- Builder
- Factories
- Prototype
- Singleton
-
Structural Patterns
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- FlyWight
- Proxy
-
Behavioural Patterns
- Chain Of Responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Null Object
- Observer
- State
- Strategy
- Template Method
- Visitor
Since this project is a replacement of the old project this not completed yet, so you may found shortage in descriptions
with some not-completed examples, but i think by Nov 2020
the update will be completed