2

私はソフトウェア製品を構築しています。このソフトウェア製品では、顧客がシステムを構成して、3 つまたは 4 つの事前統合された支払いゲートウェイ ベンダーのいずれかを使用できます。(例: PayPal、Authorize.net など)。

顧客はアプリケーションにログインし、設定に移動し、アカウントを持っているベンダーを選択し、関連するアカウント情報を入力して保存します。次に、処理された支払いトランザクションは、その特定の支払いゲートウェイ ベンダー API を通過します。

支払いを行う実際の機能からこれを抽象化するために使用するパターンを探しています。つまり、ユーザーが支払いを行うと、Payment オブジェクトがインスタンス化され、Payment->validate() が呼び出され、Payment->save() が呼び出されます。この Payment クラスで、バックエンドで使用される特定のベンダーの詳細を抽象化する必要があります。

そのため、この Payment クラスは、構成された支払いゲートウェイ ベンダーを特定できる必要があります (実行済みであり、そのための支援は求めていません)。次に、その特定の支払いゲートウェイ クラスのオブジェクトをインスタンス化し、関連するメソッドを呼び出します。

だから私が尋ねているのは、この種のものの典型的なデザインパターンはありますか、それは何と呼ばれていますか、そしてこれに関する良い資料へのリンクはありますか. 私は「このコードを書くのを手伝って」タイプの情報を探しているのではなく、「釣り方を教える」タイプの情報を探しています :-)

ありがとう。

4

1 に答える 1

2

GoF book の Strategy Pattern を使用します。Payment->save() の代わりに、validate(支払い) と save(支払い) を提供する AbstractPaymentService を記述します。支払いサービスの種類ごとに、AbstractPaymentService (例: PaypalPaymentService) を実装します。

于 2010-01-28T14:40:42.383 に答える