我正在从事个人项目,它基本上是一个代码编辑器。想象一下带有菜单项新建、打开、保存、另存为、全部保存、关闭、全部关闭的标准文件菜单。
我坚持正确的设计。目前我有:
- 一个 Document 类,它代表一个文档 - 代码编辑控件、选项卡栏中的相应选项卡以及各种属性,例如 Caption、Filename、IsModified 等。
- 代表所有打开文档的 Documents 类。包含 New、Open(FileName)、...等方法
问题是我无法弄清楚哪个类/菜单命令负责哪些任务。
例如,使用 File->New 菜单命令很简单 - 调用 Documents.New 就可以了。
但是文件->打开呢?Documents.Open 方法需要文件名作为参数。所以在调用这个方法之前,我需要打开一个文件选择对话框,让用户选择文件并为每个文件调用 Documents.Open(FileName)。此支持代码的最佳位置在哪里,在菜单命令中,重写 Documents.Open 并将其放在那里?
保存操作也是如此。哪个负责储蓄?是使用 Document.Editor.SaveToFile(FileName) 的 Documents 类还是更好地在 Document 类中创建 Save 方法?中间的某个地方还需要询问用户是否要保存当前文档...
我被困住了。有任何想法吗?
编辑:编程语言是Delphi。