Design patterns are the best formalized practices a programmer can use to solve common problems when designing an application or system.
Design patterns can speed up the development process by providing tested, proven development paradigms.
Reusing design patterns help prevent subtle issues that cause major problems, and it also improves code readability for coders and architects who are familiar with the patterns.
- Chain of Responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor
- Abstract Factory
- Builder
- Factory Method
- Prototype
- Singleton
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
This project is licensed under the terms of the MIT license.
- The design patterns are taken from the Ultimate Design Patterns course which follows the very popular Design Patterns: Elements of Reusable Object-Oriented Software book (written by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides). Although the tutorial uses Java to implement the design patterns, I used Dart for a challenge and added unit tests where I could.
- Some of the explanations and documentations have been taken word for word from java-design-patterns and design-patterns-for-humans repo.