現在、1 つのアプリケーションのリファクタリングに取り組んでいます。リース会社への申し込みです。アプリケーションは、Web サービスを介して外部システムと通信します。状態の一部の変更または一部のイベントでは、外部システムを呼び出す必要があります。通話には次の 2 種類があります。
- 同期 - たとえば、オブジェクトをリース アプリケーションに追加すると、オブジェクトの番号が外部システムから取得されます (応答を待ちます)。
- 非同期 - アプリケーションでデータを変更すると、変更は外部システムにも送信されます (メッセージはカスタム キューに保存され、外部システムからの応答は必要ありません)。
アプリケーションの設計は、外部システムの増加に対応する準備ができていませんでした (すべてのリリースで、少なくとも 1 つのシステムを追加しています)。すべてのビジネスロジックを処理し、外部システムと通信する1つのレイヤー(ロジック)があります(リクエストの構築、リクエストの検証、メッセージの送信、応答の検証、応答の処理で構成されます)。
通信部分をビジネスロジック部分から分離したいと思います。この状況では、どのような設計パターンが適していますか? Design patterns @ source Making.comと、Catalog of Patterns of Enterprise Application Architecture @ Martin Fowlerを読みましたが、使用できるものがないか、使用方法がわかりません (おそらく後者です) :-) )。