春のセール
Strategy

Strategy を Swift で

Strategy 振る舞いに関するデザインパターンの一つで 一連の振る舞いをオブジェクトに転換し 元のコンテキスト・オブジェクト内で交換可能とします

元のオブジェクトは コンテキストと呼ばれ 一つのストラテジー・オブジェクトへの参照を保持し それに振る舞いの実行を委任します コンテキストがその作業を実行する方法を変えるために 他のオブジェクトが 現在リンクされているオブジェクトを違うものと置き換えるかもしれません

複雑度

人気度

使用例 Strategy パターンは Swift コードではよく見かけます 種々のフレームワークで クラスの拡張をせずに その振る舞いを変更できるようにするためによく使われます

見つけ方 入れ子になったオブジェクトに何か実際の作業をさせるメソッドや そのオブジェクトを他のものと入れ替えるための setter の存在で Strategy パターンを識別できます

以下の例は Swift Playgroundsで利用できます。
Playgroundバージョンを作成してくれた Alejandro Mohamadに感謝します。

他言語での Strategy

Strategy を C# で Strategy を C++ で Strategy を Go で Strategy を Java で Strategy を PHP で Strategy を Python で Strategy を Ruby で Strategy を Rust で Strategy を TypeScript で