我正在研究什么是基本上我用Java编写的第一个GUI程序,到目前为止它对我来说效果很好。一切都运行顺利,但我想确保我使用并理解可靠的编程原则。
对于我的GUI类,我有大约300行代码(我已经理解的代码非常小)。我现在一直在使用SWT和这个GUI窗口。我有四个标签项,每个标签项包含一组不同的小部件供使用。我打算为每个标签创建一个类来处理它们各自的后端要求。
在我搜索现有问题时,我发现多次引用单一责任原则。据我所知,每班一个窗口符合这个原则。什么时候(如果有的话)我会将GUI分成多个窗口之外的多个类?
答案 0 :(得分:0)
设计原则是编写优秀代码的指南。 Single responsibility principle
说我们应该只为一个班级提供单一的变革来源。
这些问题的答案在于团队直接与最终用户联系。为此,务必通过基本的简单设计尽快与客户进行交流。很明显,我们会被要求添加更多新功能或添加新要求。
上述过程将让我们知道我们班级正在履行的职责范围正在发生变化。我们必须将这些行为放在不同的类中。现在我们现有的类应该通过以下方式与新创建的类通信。抽象。这是dependency inversion
。现在,我们的班级不再依赖于改变的实体或可能以高概率发生变化的实体。在抽象中,只放置我们旧班所需的行为。实现细节放在新创建的具体类中,这些类扩展了我们创建的Abstraction类。
从一开始,即使在(它们可能永远不会改变)的情况下,试图弄清楚所有责任并将它们放在单独的类中会使代码分散。
大班很冗长。它们不可浏览,它们很有可能无意地受到影响。
答案 1 :(得分:0)
关于您何时想要将内容分解为单独的类的具体问题:
我们假设你写了一本地址簿。您可能希望在应用程序的各个位置显示联系人的详细信息。或者一次呈现多个联系人。这可以通过编写一个单独的类来完成,例如ContactDetailsPanel
。
一般来说,大多数常用模式也适用于GUI类:不要重复自己,单一责任等等。编写GUI代码时我想指出的一种模式是MVC: Model-View-Controller。它主要是关于分离业务逻辑,表示和数据。
你可能想看看SWT中哪些东西可以得到单独的类。