1

現在、1 つのアプリケーションのリファクタリングに取り組んでいます。リース会社への申し込みです。アプリケーションは、Web サービスを介して外部システムと通信します。状態の一部の変更または一部のイベントでは、外部システムを呼び出す必要があります。通話には次の 2 種類があります。

  • 同期 - たとえば、オブジェクトをリース アプリケーションに追加すると、オブジェクトの番号が外部システムから取得されます (応答を待ちます)。
  • 非同期 - アプリケーションでデータを変更すると、変更は外部システムにも送信されます (メッセージはカスタム キューに保存され、外部システムからの応答は必要ありません)。

アプリケーションの設計は、外部システムの増加に対応する準備ができていませんでした (すべてのリリースで、少なくとも 1 つのシステムを追加しています)。すべてのビジネスロジックを処理し、外部システムと通信する1つのレイヤー(ロジック)があります(リクエストの構築、リクエストの検証、メッセージの送信、応答の検証、応答の処理で構成されます)。

通信部分をビジネスロジック部分から分離したいと思います。この状況では、どのような設計パターンが適していますか? Design patterns @ source Making.comと、Catalog of Patterns of Enterprise Application Architecture @ Martin Fowlerを読みましたが、使用できるものがないか、使用方法がわかりません (おそらく後者です) :-) )。

4

2 に答える 2

1

どこまでも六角建築!:) - http://alistair.cockburn.us/Hexagonal+architecture

これは、アプリケーションがイベントを受信して​​外部世界に送信する方法からビジネス ロジックを分離する優れた方法です。

Hexagonal Architecture パターンは少しレベルが高すぎるかもしれないので、アダプターによって後で実装されるインターフェイスをモデルがどのように公開する必要があるかを理解するために、前にDependency Inversion Principleを読むことを通常お勧めします。

于 2012-07-20T08:08:05.000 に答える
1

メディエーター パターンを使用してみることをお勧めします ...参照 URL から取得しました。http://sourcemaking.com/design_patterns/mediatorビジネス ロジックとコミュニケーション ロジックが混在しすぎているため、スパゲッティ コードの問題はこれで簡単に解決できると思います。

これが役立つかどうか教えてください:)

于 2012-07-20T08:52:16.263 に答える