Java文档状态模式?

标签 java design-patterns swing

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

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

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

最佳答案

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

基本方法已经概述:只需在文档数据结构中添加一个“脏”标志即可。您应该花点心思写下哪些操作(例如“创建”、“打开”、“保存”、“关闭”)应该修改和评估此标志。我建议 state chart (不一定是 UML state machine variant )作为指定这一点的工具。

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

关于Java文档状态模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1323315/

相关文章:

java - 有没有办法将存储在 XML 中的值数组读取到类型化 ArrayList 中?

c++ - unique_ptr 与 shared_ptr - 设计

java - 如何在 JTable 中显示空行并能够对空行进行排序以使其始终显示在底部

java - 如何获取 Java Frame 对象以在 Reset 方法中使用?

java - JTable 单元格中的两行或多行?

java - 使用 openCSV 忽略 CSV 值 + 将 CSV 文件中的 int 值存储在单独的二维数组元素中

java - TestFX 4 从 ChoiceBox/菜单中选择一个值

java - Java 中意外的 token 问题

c# - 大开关的替代品?

c++ - 我的 OOP 设计感觉很草率 (C++)