In software engineering, a software design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. It is a description or template used to know how to solve a problem that can be used in many different situations. Design patterns are formalized best practices that a programmer can use to solve common problems while designing an application or system. Design patterns may be viewed as a structured approach to computer programming intermediate between the levels of a programming paradigm and a concrete algorithm.
-
Contributions are always welcome. Language doesn't matter. Just make sure you're implementing design pattern.
-
PRs are welcome. To begin developing, follow the structure:
category/design pattern name/language-name/file_name.extension
e.g
Creational/Abstract factory/python/abstract_factory.py
-
Don't forget to add README with explanation how pattern works, when to use and common usage of the pattern.
-
Adding image with UML diagram for design pattern would be very helpful.
Curated list of resources dealing with design patterns.
- Books
- Free e-books
- Sites
- Online classes (Free)
To the extent possible under law, Zoran Pandovski has waived all copyright and related or neighboring rights to this work.