The Design Patterns illustrated and implemented in this repository come from the Design Patterns: Elements of Reusable Object Oriented Software book, written by written by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, a.k.a. The Gang of Four (GoF).
I hope the implementations are clear enough to be re-implemented in any other programming language.
As a side note: this is still work in progress. I will start implementing the patterns I either like most or have used more often throughout my career.
The repository comes with a Conda environment file with the dependencies you need to run everything. If you don't have Conda installed please proceed to the link above and install it. Once it's installed, you can create the environment by simply typing the command below:
conda env create -f environment.yml
Once the environment has been created, you can activate it by typing the command below:
conda activate python-dp
Explanations about how to run the sample code can be found inside the dedicated packages.
- Abstract
- Builder
- Factory
- Prototype
- Singleton
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
- Chain of responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template
- Visitor