4.8 Strategy

The strategy pattern is another very useful and powerful pattern. The idea behind this pattern is to abstract the functionality of a class into small strategy classes so your base classes can use that functionality flexibly.