我想问小费。如果您有一个 JFrame,其中包含许多 JPanel,其中有十个 JTextFields 标签和一个编辑按钮,您将如何构建您的应用程序。
您会将所有代码都放在 JFrame 中,还是从 JPanel 扩展并将所有代码包含在 JFrame 中?
按钮呢?我想使用 MVC 模式,你会如何处理动作监听器?他们每个人都是自己的控制器,还是您只为所有这些人使用一个控制器?
我想问小费。如果您有一个 JFrame,其中包含许多 JPanel,其中有十个 JTextFields 标签和一个编辑按钮,您将如何构建您的应用程序。
您会将所有代码都放在 JFrame 中,还是从 JPanel 扩展并将所有代码包含在 JFrame 中?
按钮呢?我想使用 MVC 模式,你会如何处理动作监听器?他们每个人都是自己的控制器,还是您只为所有这些人使用一个控制器?
我认为这首先是风格和个人喜好的问题。它还取决于您的应用程序应该做什么以及如何做。
如果您的 JPanel 在某种方式上都非常相似,那么从 JPanel 扩展可能是有意义的。例如,如果每个面板有 10 个按钮,其中按钮 1 总是对其相应的模型对象执行 xyz() (尤其是当此对象对于 1 个 JPanel 的所有按钮都相同时)并且按钮 2 执行 abc() ...
如果 JPanel 没有以这种方式强相关,我会将我的代码放置在 JFrame 或从外部设置整个 GUI 的第三个对象中。
与动作监听器类似。如果您的操作很少,我可能会只选择一个控制器对象以方便使用(文件不多)。如果您有很多不同的操作,我会将类似的操作分组到每组操作的一个控制器对象中。
也就是说,最好从一种简单的方法 (YAGNI) 开始,在这种方法中,您从 JFrame / 第三个对象执行所有操作,并拥有一个动作侦听器,然后在您觉得将事物拆分为您提供更清晰或更灵活的设计时进行重构。