这是一个我目前挂断的通用设计问题。它导致了一些精神代码块...我不想像这样继续它,如果它只是一个常见的陷阱,但我想继续,如果它被接受的用法,因为代码很干净,去耦(禁止交叉信息)。发布者/订阅者使用情况滑入状态
我在代码中有一个基于列表的发布者/订阅者模式,用于允许任意代码段发送未知用户可以收听的消息。非常坦率的。
此模式的当前用例之一是创建一个UI状态指示器,显示用户应用程序正忙。工作开始前有一条消息,一条重复的进度消息和一条完成消息。它看起来很干净,较低级别的代码只发布消息并且不关心听众。
起始消息最初驱动UI;它会在主窗体的状态栏中显示一个选取框进度条。完成消息隐藏了这个进度条。更新消息在标签中表示为文本。
当时没有意识到,我使UI取决于这些消息的顺序。用户界面依赖于开始和结束消息来正确反映用户界面。我所指的“状态”在用户端(消息本身不保留任何状态)。
这种用法违背了pub/sub模式吗?如果是这样,问题依赖于消息顺序?如果没有,那么好,我可以继续:-)
听起来不可怕,回到你的代码哥们! :) – kenny 2012-02-15 15:36:29
如果消息出现乱序会发生什么? – cadrell0 2012-02-15 19:14:10
@ cadrell0它可能无法启动或一旦显示可能无法关闭...我的质疑解决方案的来源。 – 2012-02-16 08:17:25