active: true
derived: false
groups:
- DI
header: |
  依存注入設計
level: 4.12
links: []
normative: true
ref: ''
reviewed: P4XTpsGbx526S9Pqi4KlGuEXCnwq--i4Y_CD7cK5BQA=
text: |
  全コンポーネント（DB、ストレージ、シリアライザ、リミッター等）が `Protocol/ABC` に基づく依存注入により差し替え可能であること。ファクトリ関数がデフォルトの組み立てを提供すること。

  ## 背景・動機

  プロジェクトの規模や要件（ローカルでのプロトタイピングから、クラウド上での分散デプロイまで）の変化に合わせて、キャッシュバックエンドやストレージを柔軟に入れ替え可能にし、ライブラリの汎用性を極大化するため。
