Definition "Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it." ā Design Patterns: Elements of Reusable Object-Oriented Software In general, a...