Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java文档状态模式?_Java_Design Patterns_Swing - Fatal编程技术网

Java文档状态模式?

Java文档状态模式?,java,design-patterns,swing,Java,Design Patterns,Swing,我是一名Java编程新手,我想知道是否有一些管理打开文档的状态的常见做法,如当前状态已保存或不干净、保存文档、打开、创建新文档等。你如何处理这个问题 现在我有了我的小Swing应用程序,有打开和关闭文档以及创建新文档的操作,但我不知道如何管理用户是否保存了文件,我需要这个来检查用户在处理当前文件时是否要创建新文件或打开现有文件 这有什么模式吗?所有的建议都非常欢迎,因为我还在学习如何使用Java游泳 您可能会考虑使用文档的临时版本,即打开主文档,但当您编辑它时,会创建临时文档。在这种情况下,打开

我是一名Java编程新手,我想知道是否有一些管理打开文档的状态的常见做法,如当前状态已保存或不干净、保存文档、打开、创建新文档等。你如何处理这个问题

现在我有了我的小Swing应用程序,有打开和关闭文档以及创建新文档的操作,但我不知道如何管理用户是否保存了文件,我需要这个来检查用户在处理当前文件时是否要创建新文件或打开现有文件


这有什么模式吗?所有的建议都非常欢迎,因为我还在学习如何使用Java游泳

您可能会考虑使用文档的临时版本,即打开主文档,但当您编辑它时,会创建临时文档。在这种情况下,打开同一文档的其他用户将看到原始文档。据我所知,这是惯例


但是我不确定您是否想要保持如此复杂的行为。

您有一个名为isDirty的布尔变量,它从false开始

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

所有其他程序功能打开、保存、新菜单e.t.c检查此布尔值的状态 在做其他事情之前

这样,它们也会显示熟悉的对话框:是否确实要退出,放弃 你的改变


据我所知,Swing没有管理文档状态的机制,我已经在真实世界的Swing应用程序上使用过几次了。你必须自己做。但是,不需要编写太多的代码,如果你的应用程序中有几个不同的文档,你可以把这些东西放在一个抽象的基类中

基本方法已经概述过了:只需在文档数据结构中设置一个脏标志。您应该考虑写下哪些操作(如创建、打开、保存、关闭)应该修改和评估此标志。我建议使用不一定是的工具来指定这一点


如果您需要更复杂的功能,尤其是撤消/重做,请查看。当您使用此模式时,必须编写的大多数代码都是特定于应用程序及其数据结构的,即您为管理文档而创建的类型,因此很难有效地对其进行概括,并将其放入Swing或RCP之类的框架中。

这很简单,这正是我所需要的,所以对我来说效果很好。