1

我目前正在处理一段继承的代码,它使用了一种非常有趣的设计模式。

代码被分成许多对象。我不确定术语对象是否适用,因为它是 C 代码,但它是最好的类比。每个对象都有特定于对象的数据、一个线程和一个消息队列。所有对象主要通过将预定义的消息放置到彼此的队列中来进行通信。主要思想似乎是每个对象的数据只能由一个线程访问。在做了一些研究之后,我发现一些工业自动化应用程序是这样编写的(即 ProfiNET 堆栈和一些 EIP 实现)。

你知道这种模式是否有名字,或者它是否在文献中的某个地方被描述过?Schidt、Stal 等人的“面向模式的软件架构”一书没有提到它。

非常感谢你。

4

3 回答 3

2

这听起来有点与Actor 模型有关。

于 2012-07-07T23:13:13.043 回答
0

可能是我,但除了生产者消费者和您所描述的相互排斥之外,还有其他模式吗?

于 2012-07-07T23:06:03.280 回答
0

查看通信顺序流程 (CSP)

CSP 允许根据独立运行的组件进程来描述系统,并且仅通过消息传递通信相互交互

它实际上是Go 语言用于goroutine 之间通信(并发)的核心设计概念之一。

于 2012-07-07T23:11:03.260 回答