Master Flexible Code with the Strategy Pattern ???????? (Design Pattern Tutorial)