java - 设计应用程序和 GUI 之间的接口(interface)

标签 java

家庭作业,我需要构建一个小型 Java 应用程序。主要目标是学习如何与 XML 交互。但第二个目标是学习如何构建这样的应用程序。

我在编程方面有一定的经验,但在设计程序方面经验很少。 我读过设计模式和设计原则,如 Solid 和 TDD。但我发现很难知道如何实现这些想法。

我遇到的一个问题是 GUI 和应用程序之间的隔离。在应用程序上,我们希望能够根据不同的标准进行排序。对于每个标准,都会有一个按钮(如列表的标题)。这将导致事件被触发。但是我应该如何传递应该排序的标准,以及如何发回排序后的数据?

可以为每个按钮定义一个不同的事件,但这样您就会有几个类似的事件,其唯一目的是区分排序标准。

另一种方法是定义一个事件,然后传递一个字符串或整数,这将指定应该根据什么条件进行排序,但是你会得到一个 if else 语句列表,并且不会遵守 open closed原则。

你会如何设计这样一个系统。

编辑:

我最关心的是试图让这个'open-closed'。正如有人问的那样,数据是对象的集合。有没有什么方法可以很容易地添加排序标准?或者这真的不可行吗?

最佳答案

听起来确实有点像您的数据将显示在表格中,如果您使用的是 Swing,JTable 现在支持排序。查看JTable tutorial在 Sun 的 Swing 踪迹中。

我想说,作为一个通用的解决方案,您可能会将条件作为参数传递给进行排序的任何对象。

另一个建议是不要太担心模式,只要保持你的设计简单和代码可读,你就可以适合小型应用程序。有时很容易陷入所有漂亮的模式中,然后尝试将它们挤入您的应用程序。

关于java - 设计应用程序和 GUI 之间的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/857959/

相关文章:

java - Spring,在一个查询中向现有的多对多列表添加一列

java - 用 math pow 阅读计算错误

java - Finalize 方法会在不覆盖它的情况下运行吗?

Java 整数转字节数组转短整型

java - 在提交之前在预持久方法中获取 JPA 中生成的 ID?

java - Java中+=和++的区别

java - 多 :Threading - Is this the right approach?

java - Spring + Maven : The matching wildcard is strict, 但找不到元素 'jdbc:embedded-database' 的声明

java - 使用 URL 创建可下载文件

JavaFX 如何在单击鼠标时清除 TextField