2

我用 Pcapdot.Net DLL 构建了一个 Winform 应用程序,它获取 Pcap 文件并将所有文件包播放到机器网卡中。

最近我注意到我所有的主要表单(所有按钮点击\事件)都是一团糟,我把所有方法都放在了这些函数中,代码看起来很复杂而且很难理解,所以我开始重新排列这段代码。

因为我的应用程序有列表框,所有播放的文件都在里面,所以我把所有这些播放功能放在播放按钮中,例如:我有循环遍历我的 Listbox.Items.Count 并在里面处理这些文件。现在我想做一些不同的事情,这是我的问题:

每次添加到我的列表框的文件只是触发事件ControlAdded或删除文件ControlRemoved并将这些文件放入具有保存该文件的列表的我的类中时,定义处理此播放函数的类和从主窗体的常用方法是什么?

4

1 回答 1

2

我认为您最好像这样重新安排它(将业务逻辑与您的 UI 分开):

  • 在您的 Form 类中有一个公共方法,该方法返回一个IEnumerable<string>文件列表,称为SelectedFiles().

  • 为“播放”按钮创建一个公共event属性,该属性在用户单击“播放”按钮时引发,称为PlayClicked.

  • 创建一个负责创建和显示表单的“控制器”类。

您的控制器类将附加到PlayClicked事件。控制器的处理程序PlayClicked将调用表单的SelectedFiles()方法来获取文件列表,然后执行它需要执行的任何操作。

我什至会考虑将所选文件的处理代码包装到另一个名为类似的类SelectedFileHandler中,并将处理文件的逻辑放入其中,也许在一个名为HandleFiles(IEnumerable<string> files).

然后“控制器”类仍将连接到PlayClicked事件,但它会使用该SelectedFileHandler.HandleFiles()方法来处理文件。

这对你有意义吗?我可能误解了你在找什么。

我基本上是说您应该使用模型视图控制器模型视图演示器架构。

于 2013-05-22T10:12:30.160 回答