1

假设用户在某个 gui 处理类中选择了一个文件路径。因此,我收到一个带有文件路径的字符串。

现在,放置文件打开/关闭代码的最佳做法是什么?是应该在GUI类中将路径转换为InputStream对象,然后将该对象传递给解析器类,还是传递String对象,让解析器类处理文件打开/关闭操作?

我更喜欢第二个选项,因为在同一个类中进行文件处理和错误处理似乎很方便,然后我传递 null,或者如果出现任何类型的失败则抛出异常。GUI 处理代码虽然很冗长,但我想将 GUI 和用户操作代码与核心逻辑分开。

但是,第一个选项很好,因为我可以更早地捕获文件读取异常,因此无需“跳下”一个类,只是在那里抛出异常。

这有什么好的做法?我相信还有更多这样的情况,其中对象在被处理之前被传递了一点。错误处理应该在“高级”类还是“低级”核心类中进行?

基本上,我应该尽快从 String 转换为 InputStream 还是迟到?

4

2 回答 2

2

首先不应在 Event Dispatch Thread 上进行任何文件处理。该线程应该只执行接收事件、驱动 GUI 和将其他关注点分派到单独线程所需的最少代码。否则,您将把自己画到一个称为缓慢 GUI的角落,从而导致您的应用程序的用户体验不佳。

关于解析器和文件处理代码之间的关注点分离,最常见的情况是,如果 API 坚持其核心业务,它将具有更大的价值,这意味着它可以在面对与其无关的关注点变化时被重用。

于 2013-02-10T13:30:37.377 回答
0

您可以尝试使用命令解决此问题。

命令模式

基本上你描述的是一个“打开文件”命令。

于 2013-02-10T13:33:34.180 回答