mcpField
S
strategy-pattern

strategy-pattern

github.com/dev-toolings開発22778 回インストール3 週間前に更新
リポジトリ

strategy-pattern について

Symfony 開発者向けの Strategy Pattern スキルです。交換可能なアルゴリズムの分離と実行時の選択を案内し、サービスのタグ付け、注入、優先順位、フォールバック、テストを扱います。

主な機能

  1. 01ストラテジーインターフェースと実装の定義
  2. 02AutowireIterator または AutowireLocator による注入
  3. 03優先順位とフォールバックの設定
  4. 04ストラテジーと選択処理のテスト

活用シーン

  1. 01実行時の決済プロバイダー選択
  2. 02複数のエクスポート形式の切り替え
  3. 03増え続ける型別分岐の置き換え

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dev-toolings/superpowers-symfony --skill strategy-pattern

インストール後、Claude Code で/strategy-patternを入力して読み込まれたか確認します。

同梱ファイルreference.md

詳細

ストラテジーパターン(Symfony)

使用する場面

  • 決済プロバイダーやエクスポート形式など、1つの操作で複数のアルゴリズムを実行時に切り替える場合。
  • 型文字列に対する switch や match が増え続けている場合。
  • 選択処理のコードを編集せずに新しいバリエーションを追加する必要がある場合。

標準的なワークフロー

  1. supports() メソッドを持つインターフェース、または各ストラテジーのキーを定義します。
  2. インターフェースまたは各クラスに #[AutoconfigureTag] を指定し、すべての実装にタグを付けます。
  3. 順番に試す場合は #[AutowireIterator] で、キーで取得する場合は #[AutowireLocator] で実装を注入します。
  4. 評価順が重要な場合は優先度を設定し、フォールバックストラテジーを登録します。
  5. 各ストラテジー単体と、フェイクを使った選択処理をテストします。

ガードレール

  • どのストラテジーも入力を処理できない場合、選択処理は明示的に失敗します。
  • ストラテジーはステートレスに保ち、互いに依存させません。
  • 増える見込みのないケースが2つだけなら、このパターンは不要です。match で十分です。

段階的な情報開示

  • 実行時の指針とリスク管理には、このファイルを使用します。
  • 実装の詳細を深く確認する必要がある場合は、リファレンスを開きます。

出力要件

  • インターフェースと、タグ付けされたその実装。
  • 順序とフォールバックを含む選択処理。
  • 各ストラテジーのテストと、一致するものがない場合のテスト。

リファレンス

  • reference.md

コメント