Pythonを使用してアプリケーションを作成しています。
私は最初にAPIを設計しましたが、これは正常に機能しています。現在、GUIを設計しています。GUIは、APIに対してタスクを実行するために使用されるスレッドを開始します。
これまで、私はObserverパターンを使用して、さまざまなレイヤーを介した通信を処理していました。基本的に、通信には次の2つのタイプがあります(主に)。-スレッド(およびその後のAPI)にSTART /STOPを要求するGUI-GUIに伝播する情報をスレッドに返すAPI。
これが私が話している現在のアーキテクチャの簡単なスキーマです。基本的に、1つの矢印は「通知」を意味します。
私の懸念は、アプリケーションスレッドが通信するときに、GuiとAPIの両方がサブスクライブしているためにメッセージを受信することです。つまり、各メッセージは2つのうちの1つだけが読むことを目的としています。
それを解決するために私がしたことは、IDと一緒にメッセージを送信することです。3つの要素のそれぞれにIDがあり、メッセージが自分宛であるか現在のものであるかを認識しています。しかし、これが「正しい」(最もよく理解されている)方法であるかどうかはわかりません。将来、パーティーが増えるとどうなりますか?
私はコミュニケーションを処理するある種のマネージャーについて考え始めましたが、それはアーキテクチャの最上位になければならず、それをさらに整理する方法がわかりません:s。
私は完全な解決策を求めているのではなく、主に経験豊富な人々によるアイデアやベストプラクティスを求めています;)
この単純なケースでは、複数のオブザーバーパターンを処理し続けることができます。しかし、私は自分のコードをサーバーに移植することを考えていました。この場合、アプリケーションに複数のスレッドがある可能性が高く、API呼び出しの処理はまったく不可能になります。
私が話しているコードへのリンク: GUI、ApplicationThread、ApplicationAPI。
通知メソッドと更新メソッドを確認します。
アドバイスをお願いします!