我工作上的个人项目,该项目基本上是一种代码编辑器。想象一下标准文件菜单上的菜单项新的、开放的、保存、保存保存所有,关闭,关闭所有。

我坚持适当的设计。目前我有:

  • 文件的类其代表的一个文件代码编辑控制下,各项卡在栏和各种性质,如标题,文件名,IsModified等。
  • 一个文件,类其代表的所有公开文件。包含的方法,如新的、开放的(FileName),...

问题是,我找不出这类/菜单的命令负责,其任务。

例如,使用文件>新的菜单的命令是简单的电话的文件。新的就是这样。

但是,对于文件的>开放?该文件。开放的方法要求的文件作为一个参数。以前叫这个方法我需要打开一个文件,选择对话,让用户选择的文件和针对每个文件呼吁文件。Open(FileName).哪里是最好的地方这种支持的代码,在菜单的命令,改写的文件。打开,并把它放在那里?

同样有节省的行动。这是负责保存?是这类文件,它使用的文件。编辑器。SaveToFile(文件)或创造更好的保存方法在文件类?在中间的某个地方也需要要求用户如果他想要挽救当前文档...

我卡住了任何想法?

编辑:编程语言是德尔福。

有帮助吗?

解决方案

恕我直言,你是增加太多的责任给你的文件类。唯一的责任的文件类应该保持文件的收集与一些相关要素(例如,处理多个实例,同一文件中,检查,如果所有文件都已关闭,数名儿童,等等)。

打开文件或甚至创建一个新的文件(例如,如果你必须选择一个格式),是独立操作的最终结果在一个新的文档,然后添加到该文件类。在我看来,你甚至不应该相互作用的文件类直到你们准备移交文件的对象。

我希望你有一些类为代表的用户界面和与用户互动,以获得所需的所有信息,创建或开文件。你应该处理一切从那里。否则,你在污染模型用户界面相关的东西。

其他提示

你需要一个单独的对象(DocumentManager)管理所有文件的操作。这将有职能,如:

  • 获得(idList)
  • GetNew
  • 保存(docList)
  • 刷新
  • 等等...
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top