基于组件的数据传输和处理的简单模拟
一个模拟通过输入和输出传输数据的组件的类。
引言
正如CodeProject上的大多数人所知,有很多编程范式,它们在处理数据方面有不同的方法。在一个午餐时间没什么事可做,我决定尝试模拟一种基于组件的数据传输方法(参见 http://en.wikipedia.org/wiki/Component-based_software_engineering)。我所做的方法可能完全效率低下,但由于我找不到将许多不同的自定义类分组到“Dictionary<>
”中的方法,所以我只能这样做。
背景
在这种方法中,我使用一个类来模拟许多不同的“门”。每个门都有许多不同的输入和输出,以及可以存储在门内的的数据。对于每个“刻度”,门将获取其输入,并相应地调整其输出。这是通过一个“Gate
”类和一个全局输出表来实现的。Gate
类包含门内的所有函数。
使用代码
可以通过将以下代码片段添加到“Gate
”类来轻松添加门。
public enum GateTypes { YourGateName, <other gates> }
case GateTypes.YourGateName: < RegisterInput("InputName"); RegisterData("DataName); >
case GateTypes.YourGateName: < SetOutput("outputname",GetInput("inputname")) >
// or some other function
门是在“Engine
”类中使用以下代码创建的
Gate MyGate = new Gate(GateTypes.YourGateName);
使用以下代码将输出连接到输入
MyGate.Connect("inputname",SomeGate,"outputname");
运行项目将在控制台中产生输出。但是,你需要一个输出门来打印输出!
正如我所说…
这只是一个午餐时间可以做的事情。我想知道是否有人会感兴趣,所以我把它发布在这里。如果你有任何将多个不同类存储在字典中的方法,请随时告诉我!
可能有一种更有效/简单/用户友好的方法来做我所做的事情。
待办事项
- 添加更多门。
- 为当前什么都不做的现有门添加函数。
- 允许将输出连接到同一门的输入。
历史
- 06/02/09 - 创建文章。