2. Strategy
The Strategy design pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. This allows the algorithm to vary independently from clients that use it, promoting flexibility and enabling runtime selection of algorithms.