Payment Adapter / Factory / CQRS / Mediator パターン(.NET 10 教育プロジェクト)
概要
Payment Bridge Api は、.NET 10 を対象にした教育目的のミニコンセプトプロジェクトです。複数の決済プロバイダ(例:各社の API)を統一インターフェースで扱う「決済ブリッジ」を想定し、Adapter パターンで各プロバイダの差分を吸収、Factory で適切なアダプターを生成します。さらに、CQRS(Commands / Queries)を導入し、MediatR を使ったコマンドハンドラ・クエリハンドラ設計とパイプライン(Behaviors)でバリデーションやロギング等を分離。Minimal API を入口として受け取った決済要求(Pay / Refund / Query)を会社コードに基づきルーティングし、共通レスポンスへ変換して返却する流れを学べるリポジトリです。
リポジトリの統計情報
- スター数: 1
- フォーク数: 0
- ウォッチャー数: 1
- コミット数: 4
- ファイル数: 19
- メインの言語: C#
主な特徴
- Adapter と Factory パターンで外部決済プロバイダを抽象化し、追加が容易
- CQRS(Commands / Queries)と MediatR による責務分離と拡張可能なパイプライン
- Minimal API ベースの軽量なエントリポイントで実用的なルーティング設計
- Behaviors を用いた横断関心事(バリデーション、ロギング、例外処理)の分離
技術的なポイント
このプロジェクトは設計パターンとモダンな .NET 機能の組み合わせを教育目的で示しています。中心は「決済要求を一元的に扱うブリッジ」で、外部プロバイダ固有の違いは Adapter(Adapters ディレクトリ)で吸収します。Factory はリクエスト内の company code(会社コード)や設定を参照して適切なアダプター実装を返し、呼び出し側は IPaymentAdapter の共通メソッド群だけを意識します。これにより新しいプロバイダ追加時は Adapter と少量の設定追加だけで済みます。
CQRS は Commands(Commands ディレクトリ)と Handlers を明確に分離し、MediatR を介してコマンドが処理されます。これにより「書き込み系(支払い・返金)」と「読み取り系(照会)」の関心が分離され、同時にパイプライン処理(Behaviors ディレクトリ)でバリデーションやロギング、例外フォーマットなどを一元管理できます。Behaviors は MediatR のパイプライン行列に差し込み、全ハンドラに共通の前処理/後処理を提供します。
Minimal API をエントリとして使用することで、軽量なルーティングと DI(依存性注入)の組み合わせが容易になります。Configuration ディレクトリにはプロバイダごとの設定やマッピングがあり、これを使って Factory が動的にアダプターを構築します。レスポンスは統一 DTO(PaymentResponse 等)で返されるため、クライアント側は個別プロバイダの差を意識する必要がありません。
設計上の利点は以下の通りです:単一責任の徹底、テスト容易性(アダプターをモック可能)、新規決済プロバイダの低コスト導入、パイプラインを利用した横断処理の容易な拡張。注意点としては、実装が教育用の簡易サンプルであり実運用ではセキュリティ(鍵管理・TLS 設定)、堅牢なリトライ/フォールバック戦略、監査ログやスループット設計など追加検討が必要です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- Adapters: dir
- Behaviors: dir
- Commands: dir
- Configuration: dir
…他 14 ファイル
まとめ
教育用途に最適な、拡張性と責務分離を学べる決済ブリッジ実装。
リポジトリ情報:
- 名前: Payment-Adapter-Factory-CQRS-Mediator-Pattern
- 説明: Educational project showcasing Adapter, Factory, and CQRS patterns in .NET 10. Payment gateway that bridges multiple providers through unified interface with Minimal API and MediatR.
- スター数: 1
- 言語: C#
- URL: https://github.com/hgulbicim/Payment-Adapter-Factory-CQRS-Mediator-Pattern
- オーナー: hgulbicim
- アバター: https://avatars.githubusercontent.com/u/45709167?v=4
READMEの抜粋:
Payment Bridge Api
📖 Overview
PaymentBridge.Api is a mini-concept educational project demonstrating modern software design patterns in .NET 10. It simulates a payment gateway system that integrates with multiple payment providers through a unified interface.
What does it do?
The project acts as a payment bridge/gateway that:
- Accepts payment requests with operation codes (Pay, Refund, Query) and company codes
- Routes requests to the appropriate payment provider adapter
- …