我正在使用 Python 创建一个应用程序。
我首先设计了一个 API,它运行良好。我现在正在设计我的 GUI。GUI 启动一个线程,用于针对 API 执行任务。
到目前为止,我使用观察者模式来处理通过不同层的通信。基本上,通信可以有两种类型(主要): - GUI 要求线程(以及随后的 API)开始/停止 - API 将信息返回给线程,传播到 GUI。
这是我正在谈论的当前架构的简单架构。一个箭头基本上意味着“通知”。
我担心的是,当应用程序线程通信时,Gui 和 API 都会收到消息,因为他们订阅了。问题是,每条消息只能由两者之一阅读。
我为解决这个问题所做的就是将消息与 ID 一起发送。这三个元素中的每一个都有一个 id,它们知道消息是给他们的还是现在的。但我不确定这是否是“正确的”(理解最好的)方法。如果我将来有更多的聚会怎么办?
我开始考虑某种管理器来处理通信,但它必须位于架构的顶部,我不知道如何进一步组织它:s。
我不是要求一个完整的解决方案,而是主要由更有经验的人提出想法或最佳实践;)
在这个简单的案例中,我可以继续处理多个观察者模式。但我正在考虑将我的代码移植到服务器上。在这种情况下,我可能有不止一个线程用于应用程序,处理 API 调用将变得非常不可能。
链接到我正在谈论的代码: GUI、ApplicationThread和Application API。
您想查看通知和更新方法。
感谢您的任何建议!