java - 什么时候应该将一个 GUI 类拆分为多个类?

标签 java oop user-interface

我正在开发我的第一个 Java GUI 程序,到目前为止它对我来说运行良好。一切都运行顺利,但是我想确保我使用并理解可靠的编程原理。

对于我的 GUI 类,我有大约 300 行代码(我发现这是相当小的)。我现在一直在使用 SWT 和这个 GUI 单窗口。我有四个选项卡项目,每个选项卡项目都包含一组不同的小部件供使用。我打算为每个选项卡创建一个类来满足它们各自的后端要求。

当我搜索现有问题时,我发现多次引用了单一责任原则。据我了解,每个类(class)一个窗口就符合这一原则。什么时候(如果有的话)我会将 GUI 分解为多个窗口之外的多个类?

最佳答案

设计原则是编写优秀代码的指南。 单一责任原则说我们应该为一个类只有单一的变更源。

  1. 我们如何知道类中变化的来源是什么?
  2. 类里面可以改变什么?

这些问题的答案取决于直接与最终用户联系的团队。为此,通过基本的简单设计尽快与客户互动的团队非常重要。很明显,我们会被要求添加更多新功能或添加新需求。

上面的过程将让我们知道我们的类正在执行的职责集正在发生变化。我们必须将这些行为放在单独的类中。现在我们现有的类应该通过以下方式与新创建的类进行通信。抽象。这就是依赖倒置。现在,我们的类不再依赖于发生变化或可能以高概率发生变化的实体。在抽象中只放置了我们的旧类所需的行为。实现细节放在新创建的具体类中,这些类扩展了我们创建的抽象类。

从一开始,尝试找出所有职责并将它们放在单独的类中,即使(它们可能永远不会改变)会使代码分散。

大类很冗长。它们不可浏览,很可能会受到无意更改的影响。

关于java - 什么时候应该将一个 GUI 类拆分为多个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36069009/

相关文章:

java - Geoserver在java管理器中通过休息创建用户

Java RMI 对象静态而不是静态字段?

java - 如何获取StAX XMLEvent对象的全文?

java - Android L - float 操作按钮 (FAB)

java - OOP - 一个类(class)如何变成另一个类(class)?

java - 跨多个类使用单个 JFrame

JavaScript OO - 如何制作一个巨大的面向对象的应用程序并使用静态成员

python - 在Python中生成具有不同属性的新对象实例

winforms - 在 GUI 线程上加载和保存应用程序配置

java - Jpanel 中的动画组件