作为初学者,我已经制定了一些想法,但想向社区询问实施以下程序的最佳方法:
它可以解码 8 种不同类型的数据文件。它们各不相同,但大多数相似(包含许多相似的字段)。另外,有3代系统可以生成这些文件。每个都略有不同,但生成相同类型的文件。
我需要制作一个可视化应用程序,它可以读取其中任何一个,在绘制图表之前将数据绘制在表中(目前通过数据表使用 datagridview )。
还有更多内容,但我的问题是关于基本结构的。
如果适合的话,我很想了解更多有关如何充分利用面向对象技术的信息。
我使用 C#(除非有更好的建议)主要是因为我缺乏经验和快速的开发时间。
我目前正在使用一个名为“log”的类,它知道打开的文件是什么生成/日志类型。它控制读取和导出到数据表。然后,表单可以给它一个路径,等待它处理文件并请求显示数据表。
有什么明显的改进吗?
正如您已经意识到的,在这里创建一个非常优雅的 OOP 应用程序有很大的潜力。
从您分享的信息中我可以看出,您的基本需求是:
1)识别文件类型的模块
2)一个可以读取文件并将数据加载到通用结构中的模块(它会是通用结构吗??),它由处理程序组成
3)可以可视化数据的模块
对于第一个,我推荐两种模式:
1a)工厂模式:文件被传递到一个公共工厂并被解析到可以决定处理程序的程度
2a) 责任链:文件被传递到每个处理程序,每个处理程序知道它是否可以支持该文件。如果不能传递到下一个。最后,要么有一个处理程序拾取它,要么如果最后一个处理程序无法处理它,就会发生错误。
对于第二个,我建议设计一个通用接口,每个处理程序都实现常见任务,例如加载、解析...如果可视化不同并且特定于处理程序,那么您也将拥有这些方法集。
如果不了解更多关于数据结构的信息,我无法对可视化部分发表评论。
希望这可以帮助。
UPDATE
这是工厂代码 - 一段非常粗略的伪代码:
Factory f = new Factory();
ILogParser parser = f.GetParser(fileName); // pass the file name so that factory inspects the content and returns appropriate handler
CommonDataStructure data = parser.Parse(fileName); // parse the file and return CommonDataStructure.
Visualiser v = new Visualiser(form1); // perhaps you want to pass the refernce of your form
v.Visualise(data); // draw pretty stuff now!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)