This repository contains practice code for various software design patterns and some refactoring examples.
To use this project, you'll need to have a text editor and a programming language installed that supports object-oriented programming.
This repository is organized by design pattern. Each design pattern has its own directory with code examples and explanations.
The design patterns included in this repository are:
- Builder
- Chain of Responsibility
- Composite
- Decorator
- Facade
- Factory Method
- Abstract Factory
- Mediator
- Observer
- Prototype
- Singleton
- Strategy
- Template Method
To run any of the code examples, navigate to the directory of the design pattern you want to learn about and follow the instructions in the README file.
If you'd like to contribute to this project, please follow these steps:
- Fork this repository
- Create a new branch (
git checkout -b new-branch-name
) - Write your code and tests
- Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin new-branch-name
) - Create a new Pull Request
We welcome contributions of any kind, including bug fixes, improvements to existing code, and new examples of design patterns.