Design patterns are recurring solutions to common problems in software design.
It is recommend to acknowledge the following principles before starting with design patterns. Design patterns and OOP in general won't make sense without strictly following these principles.
According to the Gang of Four book we can categorize design patterns into three main categories:
- Chain of responsibility
- Command
- Intepreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template method
- Visitor
Other design patterns that are important to know for complex applications:
- DesignPatternsPHP - Sample code for several design patterns in PHP.
- Design Patterns eBook