These are open source pieces of code that solve a common issue in a program. They can be:
- Structural: How entities work together
- Creational: how mechanisms are instantiated
- Behavioral: Communication between entities
However, if the pattern is not implemented correctly, it can have disastrous repercussions.