家庭作业,我需要构建一个小型 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/