首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java文档状态模式?

Java文档状态模式?
EN

Stack Overflow用户
提问于 2009-08-24 16:13:40
回答 3查看 418关注 0票数 2

我是一个用Java编程的新手,我想知道是否有一些常见的做法来管理打开的文档的状态(当前状态是保存的还是脏的),保存文档,打开,创建新文档等。你是如何实现这一点的?

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-25 06:59:39

据我所知,Swing没有管理文档状态的机制。你必须自己去做。但是,这并不是必须要编写的代码那么多,如果你的应用程序中有几个不同的文档,你可以将这些东西放在一个抽象基类中。

基本的方法已经概述过了:只需在文档数据结构中设置一个“脏”标志。你应该把一些想法写下来,像“创建”、“打开”、“保存”、“关闭”这样的操作应该修改和评估这个标志。我建议使用state chart (不一定是UML state machine variant)作为工具来指定这一点。

如果你需要更复杂的功能,特别是undo/redo,可以看看Memento pattern。使用此模式时,必须编写的大部分代码都特定于应用程序及其数据结构(即,为管理文档而创建的类型),因此很难有效地将其泛化并将其放入Swing或RCP等框架中。

票数 3
EN

Stack Overflow用户

发布于 2009-08-24 17:32:49

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

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

所有其他程序功能(打开、保存、新菜单等)在执行任何其他操作之前都会检查此布尔值的状态。

这样,它们还会显示熟悉的对话框:是否确实要退出,放弃更改e.t.c

我已经在现实中的Swing应用程序中使用过几次了

票数 2
EN

Stack Overflow用户

发布于 2009-08-24 16:21:48

您可能会考虑使用文档的临时版本(例如,您打开主文档,但当您编辑它时,会创建临时文档)。在这种情况下,打开同一文档的另一个用户将看到原始文档。据我所知,这是一种普遍的做法。

但我不确定你是否愿意保持如此复杂的行为..

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1323315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档