WINTER SALE IS ON!
Strategy

Strategy in Swift

Strategy is a behavioral design pattern that turns a set of behaviors into objects and makes them interchangeable inside original context object.

The original object, called context, holds a reference to a strategy object. The context delegates executing the behavior to the linked strategy object. In order to change the way the context performs its work, other objects may replace the currently linked strategy object with another one.

Complexity:

Popularity:

Usage examples: The Strategy pattern is very common in Swift code. It’s often used in various frameworks to provide users a way to change the behavior of a class without extending it.

Identification: Strategy pattern can be recognized by a method that lets a nested object do the actual work, as well as a setter that allows replacing that object with a different one.

The following examples are available on Swift Playgrounds.
Kudos to Alejandro Mohamad for creating the Playground version.

Strategy in Other Languages

Strategy in C# Strategy in C++ Strategy in Go Strategy in Java Strategy in PHP Strategy in Python Strategy in Ruby Strategy in Rust Strategy in TypeScript