|
|
(3 intermediate revisions by one user not shown) |
Line 1: |
Line 1: |
− | The strategy pattern is useful when there is a need to separate the implementation of a process from the class that uses it.
| + | #REDIRECT [[Strategy]] |
− | There are several reasons that this can be useful.
| + | |
− | [[Image:Strategy pattern.jpg|frame| The strategy pattern]] | + | |
− | * There are several different versions of the algorithm to implement.
| + | |
− | * The algorithms are used in more than one place. [[Once and only once]]
| + | |
− | * There is a need to create an encapsulation boundary around the algorithm to hide implementation details.
| + | |
− | * The class using the strategy implements many different behaviours choosing which behaviour to use with ''if'' statements. Each choice can be represented as a strategy instead simplifying code and making the intent explicit.
| + | |