+A design pattern is a reusable, generalized solution to a common problem encountered in [software engineering](/wiki/software_engineering). These documented templates provide an abstract approach to designing flexible and maintainable systems, particularly in [object-oriented programming](/wiki/object_oriented_programming).
+## See also
+- [Architecture](/wiki/architecture)
+- [Refactoring](/wiki/refactoring)
+- [Algorithm](/wiki/algorithm)
... 1 more lines