应该使用哪种类型的设计模式来创建模拟器?

时间:2010-03-22 14:51:50

标签: c++ design-patterns emulation organization

我编写了一个模拟器,但我对如何正确组织它有一些疑问,因为,我发现它在类连接(CPU< - > Machine Board)方面存在一些问题。 例如:I / O端口,中断,两个或多个CPU之间的通信等

我需要让模拟器具有最佳性能和对代码的良好理解。

PD:抱歉我的英语不好。

编辑:

要求多种模式。

3 个答案:

答案 0 :(得分:4)

这里有两个密切相关的事情。

  1. 模拟器是命令定义的集合。模拟器可以做的每件事都是一个命令。一些命令是嵌套的命令序列。

  2. 模拟器有许多内部状态定义。模拟器确实会更新一个或多个状态对象。

答案 1 :(得分:1)

构建您的软件而不考虑“模式”。如果它们打算在那里,模式将自然地落在你的工作之外。构建您的软件以符合先入为主的概念,即他们将采用哪种模式使其变得更笨重,更能抵御变革。

(如果您还没有,请下载适合您语言的单元测试框架并使用它来指导您的开发!)

答案 2 :(得分:1)

首先看看wiki。它似乎为仿效艺术提供了一些切入点。其次,我会看看QEMU DOSBox是如何构建的。另请查看SourceForge。 Simple query提供以下软件模拟器:

一般来说,这种复杂的任务没有单一的模式。您肯定需要状态机模式,您可以使用命令模式进行调度操作。但我真的建议你看看其他人的工作。

相关问题