.github
api-server
client
config
curriculum
docs
guide
mock-guide
english
accessibility
agile
algorithms
algorithm-design-patterns
behavioral-patterns
index.md
avl-trees
index.md
components
git
go
groovy
html
php
xml
spanish
README.md
tools
.editorconfig
.eslintignore
.eslintrc.json
.gitattributes
.gitignore
.node-inspectorrc
.prettierrc
.snyk
.travis.yml
.vcmrc
CODE_OF_CONDUCT.md
CONTRIBUTING.md
Dockerfile.tests
LICENSE.md
README.french.md
README.italian.md
README.md
change_volumes_owner.sh
docker-compose-shared.yml
docker-compose.tests.yml
docker-compose.yml
lerna.json
netlify.toml
package-lock.json
package.json
sample.env
28 lines
1.4 KiB
Markdown
28 lines
1.4 KiB
Markdown
![]() |
---
|
||
|
title: Algorithm Design Patterns
|
||
|
---
|
||
|
## Algorithm Design Patterns
|
||
|
|
||
|
In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn't a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations.
|
||
|
|
||
|
Design patterns can speed up the development process by providing tested, proven development paradigms.
|
||
|
|
||
|
This patterns are divided in three major categories:
|
||
|
|
||
|
### Creational patterns
|
||
|
|
||
|
These are design patterns that deal with object creation mechanisms, trying to create objects in a manner suitable to the situation. The basic form of object creation could result in design problems or in added complexity to the design. Creational design patterns solve this problem by somehow controlling this object creation.
|
||
|
|
||
|
### Structural patterns
|
||
|
|
||
|
These are design patterns that ease the design by identifying a simple way to realize relationships between entities.
|
||
|
|
||
|
### Behavioral patterns
|
||
|
|
||
|
These are design patterns that identify common communication patterns between objects and realize these patterns. By doing so, these patterns increase flexibility in carrying out this communication.
|
||
|
|
||
|
#### More Information:
|
||
|
<!-- Please add any articles you think might be helpful to read before writing the article -->
|
||
|
[Design patterns - Wikipedia](https://en.wikipedia.org/wiki/Design_Patterns)
|
||
|
|