2009-08-24 64 views
2

我是一个使用Java进行编程的新手,我想知道是否有一些管理打开文档状态(当前状态已保存或肮脏),保存文档,打开,创建新文档等常见操作。你如何解决这个问题?Java文档状态模式?

现在我有我的小Swing应用程序,并具有打开和关闭文档和创建新的操作,但我不知道如何管理,如果用户已保存文件或没有(我需要此检查用户是否想要以创建新的或打开现有的工作当前。)

是否有一些这样的模式?所有的建议都非常受欢迎,因为我仍然在学习如何与Java游泳。

回答

3

Swing没有管理文档状态的机制。你必须自己做。但是,那并不需要编写太多的代码,并且如果您的应用程序中有多个不同的文档,则可以将这些代码放入抽象基类中。

已经概括了基本的方法:在文档数据结构中只有一个“脏”标志。你应该仔细考虑一下你的操作,如“创建”,“打开”,“保存”,“关闭”应该修改和评估这个标志。我建议state chart(不一定是UML state machine variant)作为一个工具来指定这一点。

如果您需要更复杂的功能,尤其是撤销/重做,请查看Memento pattern。当你使用这种模式时,必须编写的大部分代码都是特定于应用程序及其数据结构(即,为管理文档而创建的类型),因此很难不可能有效地将其推广到框架中像Swing或RCP。

0

您可能会考虑使用文档的临时版本(即,您打开主文档,但是当您编辑它时会创建临时文档)。在这种情况下,打开同一文档的其他用户将看到原始文档。当我知道这是常见的做法..

但我不知道,你要维持如此复杂的行为..

2

您有一个名为isDirty布尔变量起价为假。

每次对文档进行更改时,都会通过代码将其设置为true。

所有其他程序功能(打开,保存,新菜单e.t.c)在做任何事情之前都会检查此布尔值 的状态。

这样,他们也提出了熟悉的对话框:您确定要退出,放弃 更改等

我已经就我知道用这几次对现实世界的Swing应用程序

+0

这很简单,就是我需要的,所以对我来说效果很好。 – Zec 2011-11-21 10:07:40