Design Patterns & Principles

This is a part of a blogpost series listing the design principles and pattern definitions.
The Strategy Pattern
– defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets algorithm vary independently from clients that use it.

Following are few principles adhered in this pattern

  • Identify the aspect of your application that vary and separate them from what stays same
  • Program to interface not to an implementation
  • Favor composition over inheritance

The example code for strategy pattern in Swift is available at my github repo.

courtesy: Head First Design Patterns