1

支払いモジュールを作成したいのですが、このモジュールには、ユーザーが製品を支払うことができるフォームがあり、支払いが完了した後、支払い情報をいくつかのデータベーステーブルに保存したいと考えています。このモジュールをさまざまな企業で使用したい 各企業は永続データを異なる方法で処理します。たとえば、データを1つのテーブルに保存し、他のテーブルを2つまたはツリーテーブルに保存します。私の考えは、発行者(支払いクラスである)ができるオブザーバーパターンを実装することでした支払い情報をテーブルクラス (サブスクライバー) にプッシュして、データをテーブルに保存できるようにします。

これは使用する正しいパターンですか? 助言がありますか?

ありがとう

4

1 に答える 1

1

私の理解が正しければ、支払いプロバイダーからの応答のブラック ボックス実装が必要であり、一度にこのモジュールを 1 つの会社で使用することができます。確かに、あなたのアイデアは良さそうです。私からの提案は、コマンド デザイン パターンを使用することです。応答のタイプごとに: エラー、支払い拒否、ユーザー支払いによるキャンセル、支払い成功など。各企業には独自の実装があります。そして、各具体的なコマンドは、異なる支払いステータスを実装します。SuccessfulPayment と同様に、CanceledPayment ... はインターフェイス ICOmmand を実装します。これらの特定の実装は、企業に残すことができます。あなたにとって必要なのは、支払いプロバイダーの応答に対する会社固有の処理による結果だけです。

于 2013-04-07T11:41:28.797 に答える