65.9K
CodeProject 正在变化。 阅读更多。
Home

基于组件的数据传输和处理的简单模拟

starIconstarIconemptyStarIconemptyStarIconemptyStarIcon

2.00/5 (2投票s)

2009 年 2 月 6 日

CDDL

2分钟阅读

viewsIcon

16410

一个模拟通过输入和输出传输数据的组件的类。

引言

正如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 - 创建文章。
© . All rights reserved.