Behavioral Design Pattern : Demystifying Strategy Design Pattern

Formal Definition by Design Patterns: Elements of Reusable Object-Oriented Software (Gang of Four)