Files
DesignPatternsPHP/Behavioral/Strategy/README.md
2014-07-31 14:13:53 -05:00

20 lines
473 B
Markdown

# Strategy
## Terminology:
* Context
* Strategy
* Concrete Strategy
## Purpose
To separate strategies and to enable fast switching between them. Also this pattern is a good alternative to inheritance (instead of having an abstract class that is extended).
## Examples
* sorting a list of objects, one strategy by date, the other by id
* simplify unit testing: e.g. switching between file and in-memory storage
## UML Diagram
![Alt Strategy UML Diagram](uml/uml.png)