我编写了一个仿真器,但是我对如何正确组织它有一些疑问,因为我发现它在类连接(CPU < - > Machine Board)方面存在一些问题。 例如:I/O端口,中断,两个或多个CPU之间的通信等。应该使用哪种类型的设计模式来创建模拟器?
我需要模拟器具有最佳性能和良好的代码理解。
PD:抱歉我的英文不好。
编辑:
要求多个模式。
我编写了一个仿真器,但是我对如何正确组织它有一些疑问,因为我发现它在类连接(CPU < - > Machine Board)方面存在一些问题。 例如:I/O端口,中断,两个或多个CPU之间的通信等。应该使用哪种类型的设计模式来创建模拟器?
我需要模拟器具有最佳性能和良好的代码理解。
PD:抱歉我的英文不好。
编辑:
要求多个模式。
你有两件密切相关的事情在这里进行。
模拟器是命令定义的集合。模拟器可以做的每件事都是一个命令。一些命令是嵌套的命令序列。
模拟器有一些内部的状态的定义。模拟器的每一件事都会更新一个或多个状态对象。
非常感谢;) – Facon 2010-03-22 18:35:44
构建您的软件时不考虑“模式”。如果他们打算在那里,模式会自然而然地脱离你的工作。构建你的软件,以适应他们倾向于使其体积更大,更耐变化的先入为主的观念。
(如果你还没有,下载您的语言的单元测试框架,并用它来指导你的发展!)
我不知道必须使用单元测试框架。 – Facon 2010-03-22 18:53:21
查找和下载UnitTest ++(假设您使用C或C++编写),阅读文档并享受自由。 – 2010-03-23 00:09:05
首先看看wiki。它似乎给了仿效艺术的一些切入点。其次,我会看看如何构造QEMU或DOSBox。也看看SourceForge。 Simple query给出以下的软件仿真器:
一般有这样复杂的任务,没有单一的模式。您肯定需要状态机模式,您可以使用命令模式进行调度操作。但我真的建议你看看其他人的工作。
很少有适用于此类复杂事物的单一设计模式。你可能想要解决你的问题。 – 2010-03-22 14:57:31