StrategyDesignPattern

(https://en.wikipedia.org/wiki/Strategy_pattern) a software design pattern that enables an algorithm's behavior to be selected at runtime. The strategy pattern

1- defines a family of algorithms. 2- encapsulates each algorithm. 3- makes the algorithms interchangeable within that family.

Examples of use : payment Strategy(current example), Moving Strategy (google map example : car, walking, plane,...)